Git공부 [13. GIT 협업]
**🔐 0. 협업이란? **
지금까지 공부해온 모든 기능들을 이해하고 사용할 줄 안다면 개발자들이 git을 그렇게 선호하는 이유인 협업을 할 수 있다.
원격 저장소를 이용하여 여러대의 컴퓨터로 접근하여 수정을 할 수 있게 되기 때문에 충돌만 제어할 줄 안다면 자유롭게 사용할 수 있다.
지금은 개인프로젝트도 물론 좋지만 취업시장에서는 협업의 중요성을 강조하기 때문에 집중해서 공부해 나중에 협업프로젝트도 진행할 수 있으면 좋겠다..!
**🔐 1. git으로 협업하기(1) **
협업하기에 앞서 먼저 지금까지 배운 내용들로 혼자 한번 작업하는 실습을 해보겠다.
📕실습
- 하나의 디렉토리를 정해서 git init으로 초기화 한다.
- 새로운 텍스트 파일을 생성해 내용을 넣고 add 후 commit한다.
- github에 원격저장소를 생성하고 https주소를 복사한다.
- git remote add origin “주소”로 원격저장소 주소 저장
- git push -u origin master를 입력하여 로컬저장소와 원격저장소 연결
- github상에서 push된거 확인
협업을 하기 위해선 github상에서 등록을 해줘야 하는데 github는 오픈소스인 만큼 public으로 설정된 repository는 누구나 열람할 수 있지만 마음대로 push는 못하기 때문에 권한을 따로 받아야 한다.
settings -> manager access -> invite a collaborator 클릭 후 협업 대상자 github아이디 입력
입력 후 상대방 이메일에 확인메일 전송 메일을 클릭하면 실행 협업 준비 완료..
나는 지금 따로 협업을 하고 있지 않아서 실습을 하기가 조금 까다롭다.
따라서 깃허브 아이디를 새로 파는게 아닌 같은 아이디로 다른 디렉토리에서 협업을 한다는 가정하에 진행하겠다.
협업에서는 여러 충돌 상황이 발생하는데 가장 빕번하게 발생하는 상황이 같은 파일의 같은 부분을 동시에 작업후 push하는 상황이다.
앞서 배운 지식으로 생각하면 pull을 진행하고 다음 수정내용을 push하지만 동시에 작업중인 파일에서 같이 push를 한다면 충돌이 발생할 수 밖에 없다.
충돌 내용은 pull을 진행하고 다시 푸시를 하라는 내용인데 이 작업은 앞서 배운 merge버전과 동일하다 pull로 당겨서 병합 후 수정을 mergetool로 하거나 nano로 내용을 수정한 뒤 commit을 진행하여 합치면 된다.
이 처럼 오른쪽에서 merge를 진행 한 뒤 새로운 commit을 만들고 push후 왼쪽에서 다시 pull을 실행 후 log를 찍어 보면 동일한 모습을 확인 할 수 있다.
이것으로 협업의 기본 순서를 익힐 수 있다. 먼저 pull로 바뀐 내용을 확인 한 뒤 내가 수정할 내용을 수정하고 commit후 다시 push로 원격저장소에 업로드 하는 방식이다.
**🔐 2. git으로 협업하기(2) **
조금 어렵지만 간단하게 git remore branch와 fetch를 알아보겠다.
이번엔 1번 git bush에서 새로운 버전을 커밋하고 push를 진행 한뒤 다른 2번 gitbush에서 git pull로 받아서 버전을 최신화 하는 방법이 있지만 조금 더 자세하게 뜯어보고 싶다면 git fetch기능을 이용할 수 있다.
1번에서 새로운 버전을 생성 후 바로 push하지 않고 git status를 찍어보면 remote branch 즉, origin/master라는 녀석위에 새로운 버전으로 등록된걸 알 수 있다.
status 메세지에서도 한 단계 앞서 있으니 push를 진행하라고 알려준다. git push를 진행하고 2번에서 git pull을 실행하여 버전을 최신화 할 수 있지만 fetch를 이용해 보겠다.
git fetch를 입력하면 remote branch만 pull하게 되는데 즉, remote branch는 최신화 되지만 HEAD->master는 그대로인 모습이다.
git status로 찍어봐도 한개의 커밋이 뒤쳐져 있으니 pull을 진행하라는 메세지가 출력된다.
여기서 git pull을 진행할 수 있지만 현재 master branch를 remote branch에 merge를 할 수도 있다.
git은 내가 fetch를 진행할때 마다 .git디렉토리안에 FETCH_HEAD라는 파일을 만드는데 여기에는 최신의 remote branch가 저장되어 있다.
이 기능들은 자주 사용하지 않을 것 같지만 직접 사용할때는 조금더 공부해야할것 같다.
✍️ GIT & 터미널 & 리눅스 용어 정리
- git push -u “원격 저장소 주소” “현재 주소”: 이렇게 사용하면 push시 발생하는 커넥팅 오류를 한번에 설정할 수 있다.
- git fetch: remote branch만 pull을 진행한다.
https://opentutorials.org/course/3837 많은 도움을 받은 생활코딩입니다.
공부 정리내용은 생활코딩 및 구글링을 통한 내용을 정리하였습니다.
댓글남기기