헬창개발자의 성장 V.log
로그인
헬창개발자의 성장 V.log
로그인
SourceTree Fetch, fork, p4merge
강정우
·
2022년 8월 7일
팔로우
0
sourcetree
0
형상관리
목록 보기
3/5
협업과정
개인(몸 풀기)
1) 파일 생성, 작업 후 commit, gir에 저장소 생성
해당 주소 복사
2) 저장소 연동
default remote까지 클릭.
이러게 완료되면 우리의 지역저장소와 원격저장소가 연결이 됨.
3) 팀원 초대
add ppl을 눌러 팀원을 email을 넣고 상대방이 승인을 누르면 된다.
4) 연동
두번째 칸은 browse를 통하여 원하는 장소를 클릭하여 바꿔주면 된다.
협업
1. a가 먼저 코드를 수정하고 commit을 했다.
이때 commit을 해서 원격저장소로 보냈다면 다시 지역저장소로 다운 받은 수 수정해나가는 것이 좋다.
2. b가 a가 올려놓은 파일을 다운 받은 후 수정하여 push를 시도한다.
hint에서 알 수 있듯 a가 commmit해놓은 최신화된 파일이 아니라 error가 뜨는 것 이다.
3. 이때 a와 b가 같은 부분을 수정하여 a가 올려놓은 파일을 pull할 때 b컴퓨터에 error가 발생한다.
이때 merge를 클릭하면 다음과 같은 comflict가 발생한다.
이를 외부도구를 이용하여 처리해보자
P4merge
한글이 깨지긴 하지만 똑똑한 P4 merge가 알아서 merge 준비를 마쳤다.
저장을 누르고 끄면
병합된 파일 하나와 백업파일 하나가 들어있다.
이제 merge commit을 할 수 있는 상태가 되었다.
4. 이제 만약 다시 a가 작업을 하려고 한다면 항상 최신화 되어있는 파일로 작업하기 위해 pull로 당겨오는 것이 좋다!!!
즉, push와 pull의 주기가 짧을 수록 comflict가 덜 나고 조직의 소통이 원활하게 된다는 것이다....!!!
fetch는 무엇인가?
그냥 master은 local 이고 oring/master은 remote이다.
5. 이후 a가 작업을 진행했다면
다음과 같은 상황이 된다. 이는 현재 remote repository와 지역 저장소의 불일치를 의미한다. 이때 이를 동기화하려면 어떻게 하면 될까?
push
하면 된다.
6. 이제 b가 작업을 시작하기 전에 패치를 누르면
다음과 같은 상황이 되고 이는 현재 내 local 저장소가 remote보다 뒤쳐져 있다는 것을 알 수 있다.
즉, 패치는 remote를 가져오기만 할 뿐 local에 영향을 주진 않는다.
이때 remote 파일을 병합을 누르게 된다면
로컬이었던 master 브랜치가 한 칸 위로 올라온 것을 볼 수 있다.
즉
pull
:
fetch
+
merge
이다.
7. 이때 불안하다면 신중하게 merge하고 싶다면
test branch를 하나 따서 merge를 진행한 다음 잘 된다면 그때 master branch를 merge 후 test branch를 삭제해도 된다.
pull request
만약 open source project라면 다른사람이 함부로 push해선 안 된다.
이때 다른 사람이 이 open source project에 뭔가 더 도움이 되고자할 때 pull request를 한다.
fork 버튼
다른 사람의 코드를 가져와 내꺼인 것 마냥 내가 마음대로 하겠다. 라는 뜻. 이렇게 된다면 repository의 이름은 갖지만 소유자의 이름이 바뀌게 된다.
하지만 이때 수정 후 push를 하게 되면 나의 git hub에 pull request가 뜨게 되고 이를 누르면 원래 주인의 화면에 pull requests가 뜨게된다.
기타
리베이스 정리 참조
코드 리뷰 (Gerrit) : 개발자의 코드를 상호 검증하는 것. 투표를 통하여 최다 득표자가 commit됨
git에는 issue를 확인할 수 있는 창이 있음.
강정우
智(지)! 德(덕)! 體(체)!
팔로우
이전 포스트
SourceTree branch, conflict
다음 포스트
git bash
0개의 댓글
댓글 작성