git init
git checkout COMMIT_ID
git checkout master
git reset --hard COMMIT_ID -> branch를 이동한다.
만약 head와 master가 붙어있다면 head의 branch가 움직이고 아니면 checkout과 같다.
git branch EXP
git checkout EXP
EXP브랜치에서 exp.txt
master브랜치에서 master.txt
마스터에서 exp를 병합할 때: 실험이 성공적으로 끝났다.
git merge EXP -> 이때 head가 master를 가리키고 있어야함
exp에서 master를 병합할 때: 업데이트
git merge master -> 이때는 head가 EXP를 가리키고 있어야함
master: common.txt
exp:common.txt
base
4
master의 master.txt
1
m2
3
m4
exp의 exp.txt
1
2
e3
e4
여기서 git checkout master, git merge exp를 하게 되면 충돌이 생긴다!!!
1
m2
e3
<<<<head
m4
e4
<<<exp
여기서 head와 exp를 포함해서 지우고 수정하면 끝난다. 그 후에 git add, git commit까지하면 끝난다.
위와같이 수정!
잘 합쳐진거 확인할 수 있다.
먼저 repository만든다.
local repository에 있는것 원격 저장소에 push한다.
git remote add origin https://github.com/저장소위치
git push -u origin master
git push는 git fetch + merge origin/master와 같다.
먼저 폴더 만들고 그 안에서 터미널 켠다
git clone REMOTE_URL . (쩜 해줘야지 내가 만든 폴더로 들어옴)
git push를 늦게한 저장소는 reject된다.
git fetch, git merge origin/master
git push
git push를 늦게한 저장소는 reject된다.
git fetch, git merge origin/master (==pull)
→ conflict 발생한다.
마찬가지로 수정!!!
git add CONFLICK_FILE
git push
git checkout -b BRANCH_NAME
git commit -am COMMIT_MSG
git push
→ github에서 pull request 생성된다.
리뷰 참고 후 코드 수정
github.com에서 merge pull request를 한다.
BoostCamp AI Tech 5주차 생활코딩 이고잉님 강의