16. Push & Pull 협업의 기술
간단한 요점 : pull -> work -> commit -> pull -> push
지금 프로젝트는 한 PC에서 2개의 저장소를 돌리고 있지만 2명이 각각 다른 PC에서 커밋을 한다고 가정을 한다.
다음 화면에서 exnode1은 컴퓨터 1이고 exnode1_clone은 컴퓨터 2에서 작업을 하는 것이다.
1. 먼저 exnode1 저장소에서 소스를 수정 뒤 commit을 해보자.
여기서 origin/master는 원격저장소를 의미한다. 즉 원격저장도 버전도 최신버전으로 업데이트 되었다.
* 혹시 이렇게 안되있다면 반드시 PUSH버튼을 눌러서 최신버전으로 업데이트를 해야한다.
2. 자 이제 다른 사람이 exnode1_clone에서 작업을 한다고 하면
먼저 PULL을 해서 원격 저장소에 있는 내용을 로컬 저장소로 가져와야 한다.(즉 자신의 로컬 저장소를 최신으로 업데이트 한다는 의미이다.)
Pull버튼을 눌러주자
3. 여기서 Ok을 누른다.
4. 아래와 같이 exnode1컴퓨터에서 작업한 내용을 그대로 가져왔음을 알 수 있다.
5. 자 이번에는 exnode1_clone에서 작업을 하고 commit을 해보자
6. 다음과 같이 잘 커밋이 되었고 origin/master도 최신임을 알 수 있다.
7. 또 한번 exnode1에서 작업을 해보자. 먼저 Pull을 해서 최신상태를 가져와야 한다.
만약 Pull을 안 한다면 다음과 같은 에러가 뜬다. 반드시 Pull부터 해야함을 잊지말자
8. exnode1_clone이 Pull을 안하고 바로 Push을 했을 경우
이전에는 다음과 같았지만
아래와 같이 그래프가 2개로 나눠진 것을 볼 수 있다.(뭔가 버전이 다르다는 의미이다.)
9. 결론적으로 반드시 다음의 순서로 해야한다.
PULL -> 작업 -> COMMIT -> PULL(이전 시간 동안 누가 작업했을지도 모르니까) -> PUSH
10. exnode2_clone에서 다시 PULL을 해서 가져온 뒤 PUSH를 하면 다음과 같이 그래프가 하나로 합쳐져서 지금의 상태가 최신이 됬음을 알 수 있다.
'프로그래밍 > Git' 카테고리의 다른 글
생활코딩 Git 정리 - Tag(태그) (0) | 2017.03.02 |
---|---|
생활코딩 Git 정리 - stash(안전한 곳에 보관해 둠) (0) | 2017.03.01 |
생활코딩 Git 정리 - 비교, 병합 외부 도구 연결 (0) | 2017.02.26 |
생활코딩 Git 정리 – 충돌의 해결 (0) | 2017.02.25 |
생활코딩 Git 정리 – Github을 이용하여 원격저장소로 업로드 및 복사하기 (0) | 2017.02.24 |
생활코딩 Git 정리 - Github을 이용하여 원격 저장소 만들기 (0) | 2017.02.20 |
생활코딩 Git 정리 - Branch 충돌의 최소화 방법 (0) | 2017.02.19 |
생활코딩 Git 정리 – Branch 충돌 해결 (0) | 2017.02.18 |