브랜치
On branch master 의 의미 : 마스터 브랜치(레포지토리를 만들고 커밋을 하면 자동으로 생기는 브랜치, 기본 브랜치) 위에 있다.
merge
git merge master : 현재 위치인 branch에 master branch를 합치겠다.
base때의 내용과 비교했을 때 달라진 부분이 있는 것이 우선시되고,
두 브랜치에서 둘다 변화가 일어났을 때는 Conflict를 발생시켜서 사용자가 스스로 선택하게끔 한다는 걸 기억하시면 됩니다.
참고 : https://wikidocs.net/153693
merge하다가 conflict(충돌)가 발생 할 수 도 있음 :
해결방법 : conflic가 발생한 파일을 연다 -> merge의 결과가 되었으면 하는 모습대로 코드를 수정 -> 커밋
파일 여러개가 conflict가 났을 때 :
git merge 와 git rebase의 결과는 똑같음
rebase는 새로운 커밋을 만들지 않음. 다른 브랜치로 합쳐진 상태로 이동
merge자체를 취소하고 싶을때 : git merge --abort
사실 브랜치(branch)는 커밋을 가리키는 존재(포인터)이고,
HEAD는 이런 브랜치를 통해 커밋을 간접적으로 가리키는 존재(포인터)
git reset VS git checkout
git rest
1.HEAD가 가리키던 브랜치가 다른 커밋을 가리키도록 한다.
2.HEAD도 결국 간접적으로 다른 커밋을 가리키게되는 효과가 생긴다.
git checkout
1.HEAD 자체가 다른 커밋이나 브랜치를 가리키도록 한다.
2.브랜치를 통하지 않고, 커밋을 직접적으로 가리키는 HEAD를 Detached HEAD라고 한다.
주된 이유 한 가지는 바로 과거의 특정 커밋에서 새로운 브랜치를 만들고 싶을 때입니다.
git checkout후에 commit --> 새로운 브랜치가 생성