2016-12-30 67 views
1

我正在創建git中的預接收鉤子,並且按預期工作。但是,當鉤子失敗時(即腳本中的驗證失敗),按預期拒絕'git push',並給出相關的錯誤消息(錯誤:未能推送一些裁判......),但'git工作目錄中的「狀態」不顯示任何內容,表明推送失敗。爲什麼被拒絕的git push不會顯示在'git status'中?

如果開發人員沒有注意到他們的推送失敗,他們不會從'git status'的輸出中知道有什麼問題。

我可以使用什麼命令來檢查我的所有代碼是否被推送?

+1

那麼,_git status_用於檢查本地回購的狀態,_git push_用於使用遠程回購。我不確定你的問題的答案是什麼,但git按照設計工作。它在您推送時給了您一條錯誤消息,然後狀態正確_for本地repo_。 – TriskalJM

+1

除了@ TriskalJM的評論,如果你有你的本地分支設置爲「跟蹤」origin/master,那麼'git status'將顯示你提前計算的提交數和/或在Git的其他Git的記憶值之後'master'(你的'origin/master'是你的Git的內存)。要更新你的Git的內存,運行'git fetch origin',然後'git status'會給你一個準確的(剛纔的)count。請記住,當你運行'git push'時,其他人可能推送了新的內容,所以你總是與其他推動的人競爭。誰推最快,贏。 – torek

回答

2

如果你在master分支,你可以使用下面的命令來檢查你的本地master分支的狀態是否在你的遠程倉庫相匹配master

git diff origin/master 

如果有什麼區別的推動必須有工作。如果顯示了一些不同的文件,推送不起作用或出於某種其他原因(例如新的未定本地代碼),您的本地狀態與原點(即遠程回購)不匹配。

更一般地使用git diff origin/MY_BRANCH如果你想比較你的分支與名稱MY_BRANCH

相關問題