Git을 통한 협업!

wanni kim·2021년 4월 15일
0
post-thumbnail
  1. 내 컴퓨터에서 생성한 디렉토리를 init 명령어를 통해 Git의 관리 하에 들어가게 만들어 줍니다. (Local repository 생성 및 지정 또는 초기화)
  2. 내 컴퓨터의 Git 디렉토리를 Remote Repository와 연결시켜 줍니다.
  3. pair의 변경 사항과 나의 변경 사항을 Remote Repository를 통해서 공유합니다.

git remote add "name" "url" // remote repository를 연결한다.
git remote -v // 연결된 remote repository 를 확인가능


Pull
remote Repository의 작업 내용 가져오기

git pull <\shortname> <\branch>
Remote Repository의 해당 branch 내용을 Local Repository로 가져옴. 받아오는 내용은 자동으로 병합됨.


이렇게 항상 문제 없이 수정 내용을 받아와서 자동 병합(merge)시킬 수 있다면 좋겠지만 개발을 하다보면 충돌 상황이 종종 발생합니다.
페어의 작업 내용을 받아오는 와중에 이 때 만일 페어와 내가 동일한 라인을 수정한 파일이 있다면 어떻게 될까요?
이 때는 자동 병합(merge)에 실패하게 되고 충돌이 발생합니다.

터미널 화면에서도 Merge conflict가 발생해서 Automatic merge에 실패했다고 알려주고 있습니다.
git status 명령어를 통해서 어떤 파일이 충돌하는지 알 수 있다.

충돌이 발생한 파일을 열어 보면 어떤 부분에서 충돌이 발생한 것인지 확인할 수 있다. 그리고 충돌이 일어난 부분은 직접 확인 후 수정이 필요.

Accept Current Change를 클릭해서 내가 수정한 내용으로 파일에 반영할 수 있습니다.
Accept Incoming Change를 클릭해서 Remote Repository의 내용으로 파일에 반영할 수도 있습니다.
Accept Both Changes는 변경 사항 모두를 반영합니다.

위 4가지 옵션 이외에도 직접 파일을 수정해서 반영하는 방법도 있습니다.

수정을 마치면 병합 커밋(merge commit)을 생성해 주기 위해서 파일을 staging area로 추가해야 합니다.

충돌한 파일 수정을 완료했다면 Remote Repository에 업로드 하기 위해서 staging area에 파일을 추가합니다.
Merge commit은 자동으로 Commit 메시지가 생성됩니다. (물론 메시지를 수정할 수도 있습니다.)
git commit 명령어로 자동으로 생성된 commit 메시지를 남겨 보도록 하겠습니다.
그리고 Remote Repository에 Push 한다면 다음 화면과 같이 Merge branch ‘master’ of 라는 commit 메시지가 기록됩니다.

Remote Repository로 push가 완료되었습니다!

페어와 프로그래밍하기

서로의 리모트 레포에 연결
git clone (페어의 깃허브 remote repository url)
드라이브를 맞은 사람이 먼저 코드를 커밋
그뒤에 자신의 레포에 푸쉬
다음으로 드라이브를 넘겨받은 사람이 git pull을 통해서 상대페어의 리모트 레포에서 파일을 가져온다. 그리고 새로운 코드를 작성하고 커밋을 한뒤에 다시 자신의 리모트 레포에 푸쉬한다. 또 다음사람은 pull 하고 수정 > 커밋 > 푸쉬 이렇게 반복하면서 서로 코딩을 한다.

주의 : pull은 상대의 레포지트리에서 push는 나의 레퍼지토리로

profile
Move for myself not for the others

0개의 댓글