[ 05.24 ] git (2) - git fork , clone procedure / 상대방과 작업물 수정 및 충돌 오류 해결해보기.

이숙영·2021년 5월 24일
1

Linux / Git

목록 보기
3/7
post-thumbnail

1. git 의 전반적인 procedure.

git 을 이용하는 방법으로 크게 두가지가 있다.
1. 내 작업물 레포지토리에 올리고 공유하기.
(남의 입장에서는 이 부분이 2번과 연결 된다고 볼 수 있다.)

2. 남의 작업물 내 레포지토리로 옮기고 수정한 후 공유하기.
지난 블로그에서 내 레포지토리를 업로드하는 방법에 대해 다뤘다면
이번에는 상대방의 레포지토리를 내 repository 로 옮겨오는 작업에 대해서 작성하겠다.

2. 레포지토리 받아오기 연습

(1) fork

fork 란 ?
남의 그릇에 있는 어떠한 음식물을 포크로 딱! 집어서 내 그릇으로 옮기는 개념이라고 생각하면 쉽다.

공유가 가능한 상태의 remote repository 처럼, 상대방 또한 remote repository 에 작업물을 올려두었을 것이다.
수정이 필요한 그 작업물을 내 remote repository 에 가져오는 과정을 fork 라고 한다.
fork 는 깃허브 웹사이트에서 진행된다.

(2) git clone

fork 후 내 remote repository 로 옮겨지면 주소가 하나 생성된다. 이 주소를 복사하여 터미널에
git clone 주소
명령어를 작성하여 내 컴퓨터로 옮겨놓도록 한다.

*만약 git clone 이 아닌 Download ZIP 을 클릭하여 다운받게 된다면 이후의 터미널로 진행하는 작업에 문제가 생길 수 있으므로 반드시 클론으로 가져오도록 하자.

(3) git remote add pair [pair 주소] / git remote -v

어떠한 작업물을 클론한 후 그 작업물을 상대방과 쉐어하여 수정 할 일이 생길 수 있다.
이때, 아까 클론할때 복사했던 주소가 있을것이다.
그 주소를 상대방에게 알려주고 나 또한 상대방의 주소를 받는다.

git remote add pair [pair주소]
를 한 후,
git remote -v 를 하면

혼자서 할때는 내 리모트에 올렸기 때문에 origin 하나밖에 안보였는데, 페어주소를 add 했더니
pair http://pair주소 ~~(fetch) , (push) 가 나왔다.
*페어주소는 개인정보상 지웠다

(4) git push origin master

내용을 수정하는 사람이 상대방이든 나 자신이든, 내용 수정한 사람은
git push origin master 명령어를 작성하여
내 리모트 레포지토리에 먼저 올린 후,
상대방에게 push 했음을 알린다.

(5) git pull pair master

수정한 상대가 Push 했음을 알리면,
받는사람은 git pull pair master
명령어로 해당 파일을 받아 내용을 확인 할 수 있다.

*이때, 이미 서로 master 라는 같은 branch 를 사용했기 떄문에 아무 문제없이 열리지만, 만약 branch 가 다를 경우 git merge 명령어로 합쳐줄 필요가 있다.

수정된 파일을 받은 사람이 재 수정 후 페어에게 보낸다면 똑같이 git add 파일명, git commit, git push 과정을 거치면 된다.

3. 내용충돌 오류

만약 서로 수정작업 후 같은 라인에 있는 코드를 중복으로 수정하여 오류가 날 때가 있다.

git status 를 열어보면 fix conflict~~ 어쩌고
나오고 파일을 열어보면 중첩된 부분에 상대방이 작성한 코드와 내가 작성한 코드가 연달아 보여진다.

이 충돌오류를 해결하기 위해 우리가 선택할 수 있는 옵션으로
Accept Current Change
Accept Incoming Change
Accept Both Changes
가 있는데, current change 는 내가 수정한코드로 변경, incoming change 는 상대가 수정한 코드로 변경, both change 는 둘다 수정한 코드로 변경 이다.

세 옵션 중 원하는 것을 클릭한 후 저장하고
상대에게 다시 push, 상대는 그 작업물을 pull 하게 되면 오류를 clear 할 수 있다.

4. pull request

상대방과 수정작업을 최종적으로 마친 후, 최초 제작자에게 완성본을 보내는 단계이다.

보내는 사람인 22sook00 -> 에서 노란색 밑줄처리 된 최종제작자의 주소를 확인 후 create pull request 를 한다.
pull request 시 주의할 점은, 받는사람의 주소가 맞는지 엉뚱한 사람에게 보내진 않는지 꼭 확인해야 한다!

마지막으로 메일 보내듯이
제목, 수정사항 등의 context 를 넣어 보내면 끝!

깃헙 ,, 복잡하다면 한없이 복잡하고 편리하다면 한없이 편리한 마성의 툴.. 요즘 깃 안쓰는 회사를 찾기 어려울만큼 대세가 되었다는데 나도 빨리 익숙해져서 잔디좀 심어보고 싶다 ㅎ

profile
FrontEndDeveloper

0개의 댓글