본문 바로가기
My Wiki (CodesStates)/Git

(1-3) Git 함께 작업 Workflow

by Esoolgnah 2021. 7. 19.
728x90

 

[그림] Git으로 혼자 작업할 때의 전체적인 흐름을 그려낸 표

 

 

1. 내 컴퓨터에서 생성한 디렉토리를 Init 명령어를 통해 Git의 관리 하에 들어가게 만들어 준다.

2. 내 컴퓨터의 Git 디렉토리를 Remote Repository 와 연결시켜 준다.

3. pair 의 변경 사항과 나의 변경 사항을 Remote Repository 를 통해서 공유한다.

 

 

 

init

기존 디렉토리를 Git Repository 로 변환

git init

[커맨드] 디렉토리를 Git Repository 로 변환하거나 새로운 Repository 를 초기화하는데 사용

 

 

remote add origin

나의 Remote Repository에 연결

 

 

변환한 Local Repository 를 Github 에서 원격으로도 관리한다면 나중에 협업을 하기에도 편리할 것이다. 원격으로 관리하기 위해서는 Local Repository 를 Remote Repository 와 연결하는 작업이 필요하다. 이 때 git remote add 명령어를 사용할 수 있다.

 

 

remote add origin

나의 Remote Repository 에 연결

git remote add origin <Repository 주소>

[커맨드] Local Repository 에 Remote Repository 연결

 

내 Github 에 Repository 를 하나 만들고 그 Repository 를 하나 만들고 그 Repository 주소를 git remote add origin 명령어 뒤에 입력함으로서 해당 Remote Repository 와의 연결이 완료되었다. 명령어를 입력했을 떄 터미널창에 나타나는 변화는 없다.

 

 

remote add pair

Pair의 Remote Repository 에 연결

 

 

페어와 작업을 함께 진행해 보기로 하였다. 아까와 같이 remote add를 활용해서 다른 사람의 Repository 와 연결할 수 있다. Remote Repository 를 연결함으로서 Github Repository 를 함께 공유할 수 있다.

 

 

remote add pair

Pair 의 Remote Repository 에 연결

git remote add pair <Repository 주소>

[커맨드] Local Repository 에 Remote Repository 연결

 

아까와는 다르게 git remote add 뒤에 origin 이 아닌 다른 이름과 연결하고자 하는 상대방의 Repository 주소를 입력해 보자. 상대방의 Repository 의 이름은 편의상 pair 라고 짓겠다. git remote add pair '주소' 를 입력해 상대방의 Repository와 연결했다. 명령어를 입력했을 떄 터미널창에 나타나는 변화는 없다.

 

 

remote -v

연결된 Remote Repository 확인

git remote -v

[커맨드] 현재의 Local Repository 와 연결된 모든 Remote Repository 목록 확인

 

remote -v 명령어를 통해 현재의 Local Repository 와 연결된 모든 Remote Repository 목록을 확인할 수 있다.

 

 

Pull

Remote Repository 의 작업 내용 가져오기

 

 

페어가 서버 작업을 완료해서 작업한 코드를 올려놓았다고 한다. 작업한 내용을 확인하고 싶다면 어떻게 해야 할까?

 

git pull <shortname> <branch>

[커맨드] Remote Repository 의 해당 branch 내용을 Local Repository 로 가져옴

 

git pull pair master 명령어를 통해 페어의 Remote Repository 에 있는 작업 내용을 받아올 수 있다. 받아오는 내용은 자동으로 병합(merge) 된다.

 

 

충돌 해결하기

같은 부분을 변경한 내용이 존재해 자동으로 병합할 수 없는 경우

 

 

개발을 하다보면 충돌 상황이 종종 발생한다. 페어의 작업 내용을 받아오는 와중에 만일 페어와 내가 동일한 라인을 수정한 파일이 있다면 어떻게 될까?이 떄는 자동 병합(merge)에 실패하게 되고 충돌이 발생한다.

터미널 화면에서도 Merge conflict가 발생해서 Automatic merge 에 실패했다고 알려주고 있다.

 

 

git status 명령어를 통해 어떤 파일이 충돌하고 있는지 확인할 수 있다.

 

 

 

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

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

위의 옵션 이외에도 직접 파일을 수정해서 반영하는 방법도 있다. 수정을 마치면 병합 커밋(merge commit)을 생성해 주기 위해서 파일을 staging area로 추가해야 한다.

 

 

 

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

 

 

 

 

반응형

'My Wiki (CodesStates) > Git' 카테고리의 다른 글

(1-2) Git 혼자 작업 Workflow  (0) 2021.07.19
(1-1) Git 설치, 환경설정  (0) 2021.07.18

댓글