Git 기본 상식 - 원격 (2)

jmboy713·2023년 5월 2일
0

Road to Git master

목록 보기
7/7

원격 저장소에서 일어난 변경들을 어떻게 로컬로 가져올것인지에 대해 배워 볼것입니다.

git faketeamwork

  • 우리는 불가피하게 그 변경들을 만들어야 되는데, 원격 저장소가 동료 / 친구 / 협력자등에 의해 특정 브랜치나 여러개의 커밋이 갱신되는 경우를 표현할 필요가 있습니다. 즉 우리는 팀워크를 "가장"할 필요가 있는것 입니다.
  • 원격 저장소에 가짜 커밋을 하나 만드는것입니다.
git fakeTeamwork <branch> <number>
- branch 이후 number만큼 가짜 커밋을 만든다.

git push

  • 나의 훌륭한 작업을 다른 사람들과 공유하려면 어떻게 해야되는거죠?

  • git push는 여러분의 변경을 정한 원격저장소에 업로드하고 그 원격 저장소가 여러분의 새 커밋들을 합치고 갱신하게 합니다. git push가 끝나고 나면, 여러분의 친구들은 원격저장소에서 여러분의 작업을 내려받을수 있게됩니다.

  • push 이후 가장 최근의 commit으로 branch가 옮겨간다!

history가 꼬인다?!

ex) 여러분은 월요일에 저장소를 clone해서 부가기능을 만들기 시작했습니다. 금요일쯤 기능을 공개할 준비가 되었습니다 -- 그런데 오 이런! 동료들이 주중에 코딩을 잔뜩해서 여러분이 만든 기능은 프로젝트에 뒤떨어져서 무용지물이 되었습니다. 이 사람들이 그 커밋들을 공유하고있는 원격 저장소에도 공개했습니다, 이제 여러분의 작업은 이제 의미가 없는 구버전의 프로젝트를 기반으로한 작업이 되어버렸습니다.

명령어 git push가 할 일이 애매해집니다. git push를 수행했을때, git은 원격 저장소를 여러분이 작업했던 월요일의 상태로 되돌려야 할까요? 아니면 새 코드를 건들지 않고 여러분의 코드만 추가해야 되나요? 아니면 여러분의 작업은 뒤 떨어졌기 때문에 완전히 무시해야되나요?

  • 여러분의 작업을 원격 브랜치의 최신상태를 기반으로 하게 만들면 됩니다.
    - git rebase를 사용하자!
git fetch -> c2를 가져온다. 
git rebase o/main -> 1줄로 만든다.
git push -> 최신으로 업데이트 한다. 

  • git merge를 사용했을 경우
  • 여러분은 git pull이 fetch와 merge의 줄임 명령어라는 것은 이미 알고 있을 것입니다. 아주 간단하게, git pull --rebase를 하면 fetch와 리베이스를 하는 작업의 줄임 명령어 입니다
git mergegit rebase
또다른 commit을 만들고 기존 commit과 합쳐서 다른 commit을 만든다.원격에서 commit을 가져와서 만들고 해당 커밋 밑에 기존의 커밋을 붙혀서 history가 안꼬이게 만든다.
profile
Python을 활용한 프로그래밍을 하고있습니다! 데이터분석, 인공지능, Django에 관한 정보를 업로드할 예정입니다. 잘부탁드립니다!!

0개의 댓글