2014-11-13 99 views
1

我們有本地功能黨支部,github上origin分支和Heroku的stagingproduction遠程分支機構。的Heroku:混帳推分期本地分支:主

隨着地方特色成爲準備審查更多的觀衆,我們希望他們推到staging:我的

$ git push staging local-branch-name:master 
Fetching repository, done. 
To [email protected]:app-staging.git 
! [rejected]  local-branch-name -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]:app-staging.git' 
hint: Updates were rejected because a pushed branch tip is behind its remote 
hint: counterpart. Check out this branch and integrate the remote changes 
hint: (e.g. 'git pull ...') before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

部分要--force這個問題,但git push -f到遠程是大忌。我可以像「提示」所說的那樣引入變化,但考慮到我們推入分支的分支通常是短暫的,可能與彼此沒什麼關係,這似乎是沒有必要和令人困惑的。

在Heroku上共享臨時服務器的正確過程是什麼?

回答

1

你基本上在登臺服務器上使用git作爲部署機制,而不是版本控制。您已經在github上擁有您的真實遠程位置,因此只要您從不會從其中收到更改,我不會看到強制推送到您的臨時服務器的危害。

由於兩個原因,推力通常是一個壞主意。

  1. 可以失去犯。如果您強制推送到分支前面的遠程,那麼在您之前提交的提交將會丟失。

  2. 您可以打亂其他開發人員的存儲庫。如果您強制推送到另一個開發人員已經拉出的遠程分支,他們的分支將與遠程​​不同步,並且可能很難恢復。

然而,在這種情況下,你只到存儲庫。你永遠不會失去承諾,因爲上游永遠不會超越任何特定的分支。而且,它從來沒有被其他開發人員拉過。出於這些原因,在這種情況下強行推送是可以的。

+0

好的,這正是我的預期,但我已經陷入困境迫使共享回購所以想得到確認。 – Meltemi

+0

是的,通常這是一個非常糟糕的主意。我爲我的答案增加了一個更好的解釋。 –