GIT(14)
-
(14) git rebase
git merge와는 다른 방법으로 branch들을 합치는 방법입니다. 우선 둘을 비교하며 설명해보겠습니다. 우선 merge에서는 fast-forward방식이 아니라면 아래와 같이 합칠려고하는 3way merge를 사용합니다. 서로의 공통된 조상 branch를 고른 후 합치려는 브랜치 둘을 합쳐줍니다. merge한결과 아래와 같이 됩니다. 그럼 rebase의 같은 경우에는 아래와 같은 경우가 있을 때 git checkout experiment git rebase master 해주면 아래와 같은 상황이된다. experiment branch를 떼서 c3의 내용을 합치며 c4'를 만드는 것이다. git checkout master git merge experiment 다시 merge시켜주면 fast-forwa..
2019.05.05 -
(13)git stash
git stash에 대해 공부해보겠습니다. 다른 branch에서 파일을 수정 후 다른 branch로 이동하려고 하면 아래와 같이 파일이 수정됐는데 체크아웃 하려고??? 라고 물어본다. 그래서 덮어쓰기의 경우 일반적으로는 commit까지 해주어야지 마음대로 checkout을 해줄 수 있다. 또는 그냥 새로운 파일을 추가해주면 단순하게 합쳐진다. 이러한 불쌍사를 막아야한다. 그래서 stash는 Commit을 해주기전에 checkout을 해줄 수 있게 해주는 기능이다. 이번에는 새로운 폴더를 만들어서 진행해보겠습니다. 나중에 git stash (save) 아래와 같이 working directory를 저장했습니다. save는 써주어도 되고 안써도 됩니다. 그럼 이전에 수정해 주었던 a b가 존재하지않고 최근 ..
2019.04.30 -
(12)git merge conflict
합치려는 branch들 사이에 같은 파일들 사이에 같은 위치에 다른 코드가 있다면 충돌하고 만다. 예를 들어 master branch에서 function.txt 아래와 같이 작성해보자! 그리고 exp branch로 이동해서 function.txt를 아래와 같이 수정해준다. 그리고 merge를 실행해보겠습니다. 참고로 merge를 시켜주기전에 둘다 add와 commit을 해준 후 merge를 실행해주어야 합니다. git merge 를 해주면 위와 같이 merge conflict가 났어요. function.txt에서 났다고 하네요. 그럼 git status를 통해 확인해보겠습니다. function.txt에서 둘다 오류가 났다고 하네요 그리고 conflicts를 고친 후 commit을 해주라는 메세지가 있습니..
2019.04.30 -
(11) git merge
이전 글에서 [분류 전체보기] - (10) git branch 비교하기 여러개의 branch를 만들어서 작업을 했었습니다. 그럼 이번에는 여러개의 branch를 하나로 합치는 작업을 해보겠습니다. 명령어는 간단합니다. git merge B merge B는 현재 위치하는 branch에 B를 합치겠다는 뜻입니다. 저는 master에 exp를 합쳐보겠습니다. master branch로 이동한 후 git merge exp를 해주면 됩니다. git branch -d exp exp는 이제 필요가 버린다. 그리고 다시 git branch를 통해 branch를 확인하면 master만 존재하는 것을 알 수 있다. git에서 merge의 방식에는 두가지 방법이 있다. 그것은 fast-forward랑 recursive이다...
2019.04.30 -
(10) git branch 비교하기
master로 이동해서 로그를 찍어보면 master의 정보만 확인할 수 있다. 다른 branch의 정보들을 확인하기 위해서는 몇가지의 옵션을 추가하면 볼 수 있다. git log --branches 다른 branches들의 정보들을 확인할 수 있다. 그리고 --graph를 확인하면 어떻게 branch의 흐름을 볼 수 있다. 하지만 이상태로는 전혀 흐름도를 알 수 없습니다. 따라서 master에 하나의 commit을 더 추가해봅시다. 추가 후 다시 명령어를 사용해주면 아래와 같이 분기가 생긴 것을 확인 할 수 있다. 근데 보기에 너무 길다..... 따라서 한줄로 보고 싶다면 --oneline을 통해 볼 수 있다. 훨씬 간단하게 볼 수 있다. git log --branches --decorate --grap..
2019.04.29 -
(9) git branch
git branch란 하나의 흐름에 다른 흐름의 필요가 생겨서 분기하여 다른 흐름으로 진행할 수 있게 해주는 것을 의미한다. 필자는 클라이언트 개발자와 서버 개발자들이 나누어서 작업을 하였을 때나 사람마다 작업을 나누어서 해야할 필요가 있었을 때 사용했다. 간단하게 본다면 아래와 같은 구조로 이루어져 있을 것 같다. git branch branch의 목록과 현재 사용하고 있는 branch를 확인할 수 있습니다. 원래의 흐름을 Master라고 하고 branch를 만들어 놓은 것이 없기 때문에 branch가 하나뿐이다. 그리고 옆에 *이 붙어있으면 현재 사용중인 branch이다. git branch "생성하고 싶은 이름" 새로운 branch를 생성하고 싶으면 위와 같은 명령어를 사용해주면 된다. 필자는 ex..
2019.04.29