2013-04-25 3 views
4

어떻게 새 브랜치를 만들고 커밋 할 때 그래프에서 브랜치가 보이지 않습니다.Git 그래프가 브랜치를 표시하지 않습니다.

git init 

git add . 
git commit -a 

... other commits in here 

git checkout -b mynewbranch 

git add . 
git commit -a 

git checkout master 
git merge mynewbranch 

git add . 
git commit -a 

이것은 내가 자식 로그 --graph에게

* 47926e1 This is a commit back on master 
\ 
    * f3dc827 How come i am not seeing a branch in my tree 
    * 1cd3018 This should be on my new branch 
/
* 47f3716 This is my third commit 
* 878b018 This is my second commit 
* 2db9f83 Initial commit 

을 수행 할 때 내 마음에 볼 것으로 예상 것입니다하지만이 메시지가 표시되는 : 여기

내가 뭐하는 거지 코드입니다 :

* 47926e1 This is a commit back on master 
* f3dc827 How come i am not seeing a branch in my tree 
* 1cd3018 This should be on my new branch 
* 47f3716 This is my third commit 
* 878b018 This is my second commit 
* 2db9f83 Initial commit 

뭔가 이해가되지 않습니까?

+2

다른 커밋이 없으므로 git에서 브랜치를 빨리 감기하고 있습니다. git merge --no-ff mynewbranch를 사용하여 해당 지점에서 병합으로 기록하십시오. – Doon

+0

이것이 가장 좋은 방법입니까, 아니면 그것이 분리 된 지점이라는 것을 미적으로 보여주는 것입니까? –

+0

그것은 당신에게 달렸으며, 어떻게 나무를보고 싶습니까. 그 일이 그 지부에서 행해졌다는 것을 보여주는 것이 중요하다면. 이 작업을 1 톤 수행하면 커밋 히스토리가 분기로 흩어져서 따르기가 어려울 수 있습니다. 가장 좋은 방법은 일반적으로 작업중인 팀과 git을 사용하는 방법에 따라 정의됩니다. – Doon

답변

4

mynewbranch에서 작업하는 동안 마스터 할 커밋이 없으면 내역은 사용자가 본 것처럼 보입니다. 이 경우 실제 병합은 필요하지 않습니다. 통합 마스터는 mynewbranch의 팁과 동일합니다. 이 경우, git은 (기본값으로) 빨리 감기 병합이라고하는 작업을 수행합니다. master 브랜치 포인터는 머지 팁과 같은 커밋으로 업데이트됩니다. 이것은 보통 작업이 원격 저장소에서 계속되고있는 경우 더 쉽게 작업 할 수있는 더 간단한 커밋 기록을 만듭니다.

강제 병합을 git에서 병합으로 기록하려면 git merge에서 --no-ff 옵션을 사용할 수 있습니다.

git에서는 가능한 경우 병합을 피하는 것이 좋습니다.

+0

훌륭한 설명에 감사드립니다. 제 질문은 이것입니다, 비 - 빨리 - 앞으로 옵션을 사용하거나 그냥 자식 결정하게하는 것이 가장 좋은 방법인가요? –

+0

fast-foward 대 non-fast-forward 병합에 관해서, 저는 사람들이 두 가지를 지원하는 주장을하는 것을 보았습니다 ([Git flow] (http://nvie.com/posts/a-successful-git-branching-model/), 예를 들어, 빨리 감기가 아닌 것을 권장합니다. –

+0

일반적으로 버전 기록을 가능한 빨리 위상 적으로 단순하게 유지하는 것이 가장 좋습니다. 즉, 빨리 감기를 사용하는 것입니다. --no-ff 옵션은 명시적인 분기 및 병합 추적을 요구하는 방법론을 지원합니다. – antlersoft

관련 문제