2013-03-21 28 views
8

我想找出我推送的最後一個東西,而不是我提交的最後一個東西,但推送。Git找出我推送的最後一個提交

這是否有一個git命令?

語境: 我想我的合併與dev_branch主分支前捉一些提交,但有人告訴我,你不能衍合那些已經推任何東西(這是真的嗎?)。

所以我想知道什麼是我不能包含在這個rebase中的最後一次提交。

回答

24

如果你指的是最後一次提交你推到master分支然後,假設你的遙控器是origin

git rev-parse origin/master 

這將顯示您提交的origin來源master分支尖端的ID, 作爲您當地的知識庫。這可能意味着提交是其他人的提交,如果其他人在你之後推送了提交,並且你自從fetch編輯該分支之後就提交提交。

git show -p origin/master 

這個命令會給你提交的信息,包括提交ID,作者,日誌信息,並DIFF其父犯(S)。這樣做正是這種檢查


我最喜歡的Git命令:

git log --pretty=oneline --abbrev-commit --graph --decorate --all 

這將顯示提交歷史的一個很好的ASCII藝術圖形,每一個提交會顯示任何裁判說正在瞄準它。通過這種方式,您可以一眼看到分支機構併合併到歷史記錄中,並輕鬆查看origin/master與您自己的master相關的位置。

+0

哇謝謝cdhowie最後的命令是真棒,它真的很有用! 也許我應該問這個在一個單獨的問題,而是什麼被認爲是更好 -git變基-i -git合併--squash 我想要做的,是我的合併的Dev分支與主,但有我的100 +傳遞壓縮到4中。不是1,因爲它的歷史可能有4個關鍵點 – chrispepper1989 2013-03-21 16:31:03

+2

如果你推動了你的開發分支,那麼壓縮它是一個壞主意,因爲其他人可以自由地從你的工作中分支出去。如果它是公開的,請不要更改它。如果它不公開,那麼'git rebase -i'會讓你選擇你想保留在歷史中的哪些不同的提交,以及你想要壓縮到哪些提交。 'git merge --squash'只會讓你有機會創建一個提交,所以最終取決於你想要提交多少個提交對象。 – cdhowie 2013-03-21 16:34:44