2013-06-19 43 views
1

我正在使用Git + Gerrit,結果比我預期的要多一點點。我怎樣才能看到所有影響具有git的特定文件的提交列表(包括孤立提交或懸掛提交)

由於還沒有達到學習曲線的頂部,我已經失去了對文件所做的一些更改。

我認爲那些改變可能在之前的提交中,在Gerrit似乎需要的merge-and-rebase歌曲和舞蹈例程中,它會成爲孤兒。

如何查看影響特定文件的所有提交(孤立或不是)的列表,以便我可以一一瀏覽並嘗試查找我的更改?

回答

2

不知道格里特和「合併,和重訂歌曲和舞蹈」之分,但在一旦你提交了Git,你總是可以回覆(除非你採取特殊行動來阻止這一點)。

首先,檢查什麼承諾你有興趣:

git reflog -- <file> 

一旦你的(差)孤兒提交的ID是已知的,您可以執行下列操作之一:

git merge <commit_id> 

git reset --hard <commit_id> 

兩者之間的選擇取決於您,並取決於以下因素(其中RS)的

  • 您的本地副本
  • 相對位置的狀態(在歷史上)提交你試圖恢復
  • 你有多少時間有

編輯:

發現了一個有趣的技巧:

git cherry-pick -n <commit_id> 

這將適用於您當前HEAD的孤立提交,但不會自動提交更改 - 您可以簽出不相關的內容並僅保留對所涉及文件的更改。

注意:我從來沒有使用rebase,因此可能出現這種情況,這種伎倆需要某種適應你的情況

0

您可以使用log來獲取提交列表。這樣做會顯示更改爲file1中所有分支上(請參閱聯機幫助頁git-log瞭解更多信息):

git log -g --pretty=oneline --all -- file1 
相關問題