git & github : merge & pull
Merge, Pull,
# pull / 현재 repository에 fetch, merge
git pull
# merge
git merge <branch 이름>
# merge 취소
git reset --merge
git pull은 현재 repository에 현재 연결되어있는 branch의 repository와 맞춰 갱신한다.
만약 내가 집에서도 repository에 작업을 하고, 회사에서도 해야한다면!
집에서 push 한 상태로 회사로 출근하면 제일 먼저 최신 update로 pull을 해야한다.
git merge는 다른 branch에 있는 변경 내용을 현재 있는 branch에 병합할 때 사용한다.
만약에 version을 나눠놨다하면 맘에들지 않는(?), 바꿔야 하는 버젼의 branch로가서 제일 맘에드는 branch의 명을 적어주면 merge가 되면서 update가 된다.
git merge
git merge는 좀 유의할 필요가 있다. git merge 같은 경우는, 이 명령어를 실행하는 branch로 다른 branch를 가져오는 명령어이다. 물론 merge를 실행할 때는 무엇인가 바뀌었으니 통합하겠다는 의미일꺼라 생각한다.
하지만, 아무래도 프로그램이 크면 클수록 이 합치는 과정에서 변수나 function, data 등등이 변화되었을 것이고, 이러한 변화들이 프로그램의 branch 간에 merge를 실행했을 때, 충돌가능성이 늘어날 수 밖에 없다.
git는 이것을 사전에 충돌하는 것을 막아준다. 충돌이 일어나는 상황이 벌어지면, merge 자체가 되지 않는다.
따라서 merge 하기 전에 항상 충돌가능성이 적게 프로그램을 짜야하고 항상 신경써야한다.
git pull 충돌>?
가끔 git pull 하는데 가끔 안될 때가 있다. 이는 git stash list를 확인해서 꼭 git stash drop으로 다 지워주고 해야 pull이 진행이 된다. 안되는 이유가 stash에 변경 정보가 담겨져 있어서 이를 지우거나 commit 하거나 해야하기 때문이다.