2015-12-03 52 views
1

我正在與其他人一起工作,我想拉他們推到主人的變化,然後重新分配我的分支(我的分支最新承諾讓我們說)在上面的新主人。我不確定這是否是正確的方法,但無論如何,我做了以下步驟。這裏的出發點是我的分支。尋找我的提交後拉新主人

  1. git checkout master

  2. git pull

  3. git checkout <my-branch>

  4. git rebase master

這工作,但我有一個疑問。當我拉新的主人時,HEAD在新主人的最後一次提交中。所以運行git log --graph --decorate不顯示我的分支。在這個階段(2到3之間),我如何看到分支上的提交?

+0

這實際上看起來是正確的,如果你想要做的是在最新的'master'上重新分配'my-branch'。你是否意識到你所做的將對'master'產生_no_作用,而是會重寫你本地'my-branch'分支的歷史記錄? –

+0

@TimBiegeleisen當然,我的任何提交都沒有被推送到master,我想要的只是MASTER - >,並且我正確地使用了這4個步驟。我只是在第2步和第3步之間問,我怎麼看到我在git log中的提交?我用自動完成分支名稱的方式完成了它,但是如果我忘記了分支名稱呢? –

+0

查看@ barnes53的答案,因爲它似乎是你真正想要的。 –

回答

1

當我拉出新的主人時,HEAD處於新主人的最後一次提交中。所以運行git log --graph --decorate不會顯示我的分支。在這個階段(2到3之間),我如何看到分支上的提交?

git log默認顯示當前HEAD的日誌。因爲在你的過程中的這一點,你已經檢查出分支的「主人」,它會告訴你主人的歷史。看到另一個分支,歷史,如「我的分支」,你只需要指定:

git log --graph --decorate my-branch 

您還可以同時指定多個分支:

git log --graph --decorate master my-branch 

我用自動完成我的分支的名稱,但如果我忘記了分支名稱呢?

你可以列出你的分支提醒名稱(git branch --list)的自己,或者你可以檢查引用日誌:

git reflog 

,它會顯示你這個(默認)HEAD的「歷史」。輸出是這樣的:

6573269 [email protected]{0}: checkout: moving from foo to master 
037f764 [email protected]{1}: commit: add baz 
6573269 [email protected]{2}: checkout: moving from master to foo 

正如你所看到的,它會告訴你你之間切換分支的名稱。


根據混帳的安裝方式,你可以有visuallyzing分支機構和瀏覽歷史上的一個方便的工具:gitk。運行命令gitk --all &,您將得到一個GUI程序,該程序顯示所有分支的歷史圖以及用於瀏覽提交內容的UI。

另外,如果使用--format=oneline標誌修改git log命令,則可以獲得比通常的多行格式更緊湊的視圖。

git log --graph --decorate --format=oneline 
+0

這正是我想要的。精彩的回答,謝謝! –