[英]Find the last local git commit that is also present in/was pushed to upstream
[英]Git find out the last commit i pushed
我想找出我推送的最后一件事,不是我提交的最后一件事,而是推送的。
是否有為此的 git 命令?
上下文:我想在將我的 dev_branch 與 master 分支合並之前壓縮一些提交,但我被告知你不能重新設置已經推送的任何內容(這是真的嗎?)。
所以我想知道我不能包含在這個 rebase 中的最后一次提交是什么。
如果你的意思是你推到master
分支的最后一次提交,那么假設你的遙控器是origin
:
git rev-parse origin/master
這將顯示origin
源的master
分支的提示的提交ID, 因為您的本地存儲庫當前知道。 這可能意味着提交是其他人的提交,如果其他人在您執行后推送提交,並且您已經fetch
該分支。
git show -p origin/master
此命令將為您提供有關提交的信息,包括提交ID,作者,日志消息和對其父提交的差異。
我最喜歡的Git命令之一就是進行這種檢查:
git log --pretty=oneline --abbrev-commit --graph --decorate --all
這將顯示提交歷史記錄的一個很好的ASCII藝術圖表,每個提交將顯示任何針對它的引用。 通過這種方式,您可以一目了然地查看歷史記錄中的分支和合並,並輕松查看origin/master
與您自己的master
。
找到可以壓制的提交的正確命令是:
git rev-parse @{push}
如果您的存儲庫沒有提交,或者您的存儲庫沒有遠程推送到,該命令將出錯。
如果結果等於git rev-parse HEAD
(如果您的存儲庫沒有提交,它也會失敗),那么您沒有什么可壓縮的。
您可以通過git log @{push}..HEAD
獲取可壓縮(尚未推送)提交的列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.