팀원과 협업하기와 pull발생 시 에러

정창민·2022년 11월 24일
0

1. Git clone

  • main으로 정한 깃허브 상에 주소를 복사한다.
  • 복사 후 파일을 저장할 폴더를 VScode로 열고, 터미널 창도 연다.
  • git clone (깃허브 주소)

원격 저장소에 있던 프로젝트가 로컬 저장소에 저장된다.

2. 내 파일을 새로운 branch에 push하기

  • 파일을 수정했다면 git add . → git commit -m "커밋 메세지"를 입력
  • 안전하게 새 브랜치를 만들어서 push를 해보자
  • git checkout -b (브랜치명) 을 입력하면 브랜치 생성과 동시에 해당 브랜치로 이동
  • git push origin member_1 (새로 만든 브랜치명, 필자는 member_1로 생성함)

그러면 만들었던 "member_1 브랜치"로 "원격 저장소"에 푸쉬를 하게 된다.


2-1.

  • 깃허브로 돌아가면 member_1이 푸쉬를 했다는 메세지를 볼 수 있다.
  • compare & pull request를 클릭한다

2-2.

  • "첫 줄 추가"라는 commit message가 확인이 된다.
  • 그 밑 큰 box안에 push파일에 대한 설명 또는 팀원에게 전달할 메세지 등을 입력할 수 있다.
  • 입력 후 create pull request를 클릭

2-3.

  • pull request에 1이 추가가 된 모습이 보여진다.
  • pull request란 main으로 갈 수 있게 허락을 요청한다고 설명할 수 있겠다.

2-4.

  • 선임자 또는 팀원, 본인이 merge pull request를 클릭하면 새브랜치에서 코딩했던 코드들이 main 프로젝트와 합쳐져있는 걸 볼 수 있다.

머지가 달 됐다는 보라색? 박스가 보여짐!

3. 원격저장소 프로젝트 pull 받기

상황을 가정했을 때, 다른 팀원은 작업을 계속하고 있었다고 하면 현재 원격 저장소에 저장 된 main 파일과는 내용이 다를 것임으로 동기화 작업을 해준다.

  • pull전에 작업을 끝내고 git add . → git commit -m "커밋 메세지"
  • git pull origin main (원격 저장소 메인에 있던 코드를 당겨오겠다.)

4. fatal: Need to specify how to reconcile divergent branches. 에러 발생!!!!!

git push origin main 을
!!!!! 했더니 이런 에러가 뜨고 말았다 ㄷ ㄷ ㄷ 에러가 발생 시 "오히려 좋다." 라는 마인드를 가지라고 했지만 동공에 지진이 발생한다.

일단 이 경우는 필자가 알기로는...
git pull이란 => fetch + merge의 합성어이다.

  • fetch란 원격 저장소에 신규 commit을 가져와 보겠다는 것이고
  • merge란 내 branch에 병합하겠다는 말

즉, 이 경우에 fetch만 되고 merge가 되지 못했다는 말로 merge의 종류를 지정 해줘야 한다.

3가지 종류 중 하나를 선택해야하는데...
https://eocoding.tistory.com/m/108 여기 블로그에 그것들에 관련된 내용이 자세히 나와있다. (하.. 저는 완벽히 이해하지 못했습니다.)

rebase방식은 commit이 지워질 수 있으므로 위험?해보여 피했고, fast-forward방식은 컴퓨터가 자꾸 거부를 하는 거 같다.
commit의 기록은 남겨놓고 병합을 하는? 1번째 merge를 실행해보았다

터미널 창에

  • git config pull.rebase false 입력
  • 다시 git pull origin main

그러면 또 이상한 창이 뜬다.
이것은 VI편집기라고 한다. 이것이 뜬 이유는 merge message를 입력하라는 것 같다.

  1. press "i" ( i 를 눌러야 vi편집기로 들어가서 수정할 수 있다.)
  2. merge message를 적음
    (필자는 도대체 어떻게 적는지 모르겠다. 적으려고 해도 안 적혀짐...)
  3. ESC
  4. :wq 입력
  5. press enter

위에 작업을 수행했다면 pull이 잘 됐을 것이고 정확하게 확인해보려면
git log --oneline을 쳐보자 그러면 commit(merge가 잘 됐다는) 메세지가 뜬다.
위에 2번을 잘 수행한다면 merge message를 바꿀 수 있을 거라 예상한다.

git graph상에서도 잘 확인이 된다.

이제 원격 저장소에서 pull이 완료 됐으므로 수정된 파일을
git push origin (push할 브랜치명)

profile
안녕하세요~!

0개의 댓글