supergravity
git - 브랜치 기록 본문
1. 컴퓨터 code change => git commit -m => git push origin master
2. 네이버 git clone something => code change => git commit -m => git push origin master
3. 컴퓨터 code change => git add * => git commit -m => git push origin master => 에러!
git pull 에러!
git pull origin master 에러!
git commit -am => git pull origin master => git push origin master 일단 해결
자 위의 상황을 정리해보자...
1. 네이버 클라우드에서 클론
위의 origin/maser는 remote branch라고 부른다. origin/maser는 서버에서 업데이트 될 때마다 갱신되는 브랜치이다. 현재 위의 상황은 네이버 서버에서 바로 받아온 상황이기 때문에 local branch와 remote branch가 같은 커밋을 가리킨다.
2. 네이버 클라우드에서 작업을 하고 커밋 그리고 master에 push 했다.
3. 개인 컴퓨터에서 수정을 한 후 push하려고 했다.
여기서 수정을 한후 github내용과 충돌하지 않고 없어지는 코드 없이 깔끔하게 giihub에 push 하고 싶다? 이를 하기 위해서는
내가 수정하던 branch의 내용을 깔끔하게 commit 시킨 후 github의 내용을 받아와야 한다.
4. 정리하고 github에서 받아오기
git fetch origin을 사용하면 위와 같이 된다.
NOTE : Fetch 명령으로 리모트 트래킹 브랜치를 내려받는다고 해서 로컬 저장소에 수정할 수 있는 브랜치가 새로 생기는 것이 아니다. 다시 말해서 master라는 브랜치가 생기는 것이 아니라 그저 수정 못 하는 origin/master 브랜치 포인터가 생기는 것이다.
위에 fetch 한 remote branch를 기존의 master branch에 합쳐서 일을 진행해야 했다.
git checkout master 진행 후 git merge origin/master을 실행해준다. 그러면 master는 와 origin/master 합처진다. origin/master는 수정 불가능한 북마크 임으로 히스토리 상에 남는다.
NOTE : Merge 하지 않고 리모트 트래킹 브랜치에서 시작하는 새 브랜치를 만들려면 아래와 같은 명령을 사용한다.
git checkout -b serverfix origin/master
위의 명령어는
git branch serverfix
git checkout serverfix와 같다.
5. 수정한 내용 push
git push origin master or git push origin serverfix
위에서는 git pull을 사용하였는데 git fetch를 나의 컴퓨터 master branch에서 하고 받아온 remote branch인 origin/master의 정보를 master branch에 git merge 한 것과 같다
결국 협업을 할 때 push를 하기 전에 내가 수정한 코드를 새로운 branch로 업그레이드하여 올리거나 fetch하서 합하여 올려주어야 한다.
Git - 리모트 브랜치
“origin” 의 의미 브랜치 이름으로 많이 사용하는 “master” 라는 이름이 괜히 특별한 의미를 가지는 게 아닌 것처럼 “origin” 도 특별한 의미가 있는 것은 아니다. git init 명령이 자동으로 만들
git-scm.com
pull 사용에 대한 내용
'개발중 기억해야 할만한 것들' 카테고리의 다른 글
aws EC2 django-rest 배포 (0) | 2021.01.02 |
---|---|
HTTP 요청 헤더 (0) | 2021.01.01 |
스코어 정하기 (0) | 2020.12.22 |
expo production mode and development mode (0) | 2020.12.18 |
Git 처음 시작하기 (0) | 2020.12.04 |