2012-06-26 75 views
5

我有一個git回購,我只是推到服務器。然後我在服務器上設置一個post-receive鉤子。我想檢查它的作品。我必須再次提交才能看看它是否有效?我真的很想在我嘗試建立這個設置時強制推送,而不是繼續進行沒有實際價值的提交。它不工作,我只是不明白。推動沒有提交

$ git push --force origin master 
Everything up-to-date 
+0

特別針對fork上的GitHub頁面:http://stackoverflow.com/questions/8587321/github-pages-in-forked-repo –

回答

5

您需要推送較舊的提交來實現此目的。例如,你可能會推動使用此評論當前HEAD提交之前右:

git push --force origin HEAD^:master 

在這之後,你可以推HEAD再次承諾:

git push origin master 

然而,而不是推動所有的時間考慮手動調用鉤子。這通常更容易 - 但是,當你認爲一切正常時,不要忘記進行實際測試。

+0

你能澄清一下這件事嗎?或者指向一些指南 –

2

有一個小使壞,你可以使用:

git stash save && git push --force origin "[email protected]{0}:master" && git stash pop 

這確實3兩件事:

  1. 藏匿當前提交的更改。 存儲創建一個新的提交,但在一個單獨的文件。它不會玷污你的歷史。另外,它從更改中清除工作目錄。請參閱步驟3.
  2. 推送隱藏的代碼
  3. 彈出存儲 - 清除存儲並將所有文件放回工作目錄。

這將有效地將所有文件推送到遠程,而無需創建本地提交。