2009-10-29 121 views
2

我有一個主人和一個測試版分支。有推送被拒絕的情況:如何應對git push上的「拒絕」?

編輯2:我在分支主人。

$ git push 
Counting objects: 9, done. 
Compressing objects: 100% (6/6), done. 
Writing objects: 100% (6/6), 669.81 KiB, done. 
Total 6 (delta 2), reused 0 (delta 0) 
To [email protected]:foobar/codedemo.git 
    a5fc71d..64430c1 master -> master 
! [rejected]  beta -> beta (non-fast forward) 
error: failed to push some refs to '[email protected]:foobar/codedemo.git' 

正常情況下,我會結帳測試版,然後拉測試版,這可能會解決它。

但是,因爲這是一個生產網站,我不能在這裏簽出測試版。有沒有一種方法可以在不檢查的情況下測試測試版?

由於這是一個生產網站,我以某種方式卡住了。

編輯:該代碼也在另一個位置簽出,我可以從其他位置做些什麼來解決問題嗎?在其他地方沒有問題。

EDIT3:隨着接受的解決方案一段時間後,我能做到這一點的幫助,但我更喜歡一個解決方案,而第二個客戶端

+0

請指定您嘗試推送的分支。 [master or beta] – gahooa 2009-10-29 00:49:19

+0

@gahooa:我在分支大師 – 2009-10-29 01:03:13

+0

你可以在不檢出的情況下執行pull操作:它被稱爲'git fetch'。但是這不會對你有所幫助,因爲你需要能夠檢出分支來解決合併衝突。 – 2009-10-29 08:02:29

回答

4

你可能推beta版的一些其他分支,然後去的地方,你可以檢查出來解決這個問題。

git push origin beta:beta-temp 
# on a different machine 
git fetch 
git checkout beta-temp 
git rebase origin/beta # puts your new commits on top of the upstream 
git push origin beta-temp:beta 
git push origin :beta-temp # to delete it 
+0

謝謝,這幫助我解決了它。這意味着沒有簡單的方法(在這種情況下)從原始/測試版本合併到本地測試版,而無需檢測測試版本? – 2009-10-29 22:20:48

+0

正確,因爲合併總是有可能失敗,所以您需要在工作樹中進行合併,以便您可以修復失敗並提交混合。 – 2009-10-30 21:26:15

0

你想推什麼分支?

默認情況下,git push將推送所有已配置的跟蹤分支。

試試這個推只是當前分支:

git push origin HEAD

4

如果你還沒有做過什麼奇怪的,那麼這種情況的原因是,遙控器有一個承諾,你是不知道的,並允許推送繼續將忽略完全提交。

嘗試pulling首先,它會嘗試自動合併兩個提交,之後您將能夠推送。

如果你拉出一個當前沒有檢出的分支,我認爲它仍然會爲你創建一個合併。