협업을 하지 않을때는 원격 저장소를 혼자만 쓰므로, 자신이 변경사항을 주지 않는다면 원격저장소는 달라지는 것이 없다.
협업은 세 가지 시나리오가 존재한다.
1. 내 로컬 저장소는 변했는데 원격 저장소는 변함이 없는 경우 (pull & push)
2. 내 로컬 저장소는 변함 없는데 원격 저장소는 변한 경우
3. 내 로컬 저장소도 변했는데 원격 저장소도 변한 경우 (pull request)
1번의 경우에는 코드작성하고 그냥 push 하면 되는 경우이다.
2번의 경우에는 git pull로 동기화 후 push 하면 된다.
3번의 경우에는 2가지 방법이 있다.
- rebase
- pull request (-> merge)
pull request를 하기 위해 단계가 있다.
git clone [깃 주소]
1. 깃 브랜치 생성 git branch [브랜치 명] 2. 깃 브랜치 조회 git brabch 3. 깃 브랜치 변경 git checkout [브랜치 명]
git push origin [브랜치 명]
#코드 동기화 git pull <remote 명> # 브랜치 삭제 git branch -d <브랜치 명>
뜻 : 현재 내가 작업하고 있는 branch의 base를 옮긴다. 라는 뜻을 가짐.
base : 현재 내가 작업하고 있는 branch와 합치려는 branch의 공통 조상
위 그림에서 branch1의 조상은 B2를 의미한다.
이 경우에서 master 브랜치로 rebase 한다는 의미는 B2에서 M2 브랜치로 옮긴다는 것이다.
즉, 합치고자 하는 branch의 최신 commit으로 base를 옮긴다는 의미.
git rebase [rebase하고자 하는 곳]
좋은 내용 배워갑니다