2010-08-29 110 views
11

我使用git rebase -i origin/master壓縮Git中的某些提交,如ReinH.com中所述。獲取Git中壓扁提交的信息

壓縮一些提交後,有沒有辦法看到原始提交?是否有可能獲得提交的「差異」?我可以得到SHA嗎?

如果可能,運行後仍然可以運行git gc

回答

18

壓扁的重點是重寫歷史,用一次提交替換原始提交。

這就是說,很難讓事情在git中真正消失。最簡單的方法是通過git reflog。嘗試git reflog <branch>作爲您重新分配的分行的以前頭寸。您應該能夠在交互式重新綁定之前找到分支尖端的SHA1。 (如果分支不再存在,請嘗試git reflog show以查看HEAD的推薦日誌,它應該也在那裏,只需要更多其他活動來排序)。一旦擁有SHA1,您就可以使用git log -pgitk來查看提交併查看它們的差異。 (如果您想要做很多事,創建一個分支出現,所以您不必到SHA1一遍又一遍粘貼)。

這仍然將是可能的運行git gc後,只要它不是招自從你壓制這些提交以來,已經很長時間了。 gc只有梅子無法達到超過一定年齡的懸掛物體。如果可以從提交日誌中的任何內容訪問提交,則提交被認爲是可訪問的,並且提交日誌需要90天才能過期,因此通常可以指望原始提交在三個月內停止。

+0

修復造型請耐心閱讀:) – mecampbellsoup 2016-12-13 17:20:06