2013-12-09 66 views
1

我正在CakePHP網站上工作,我使用git作爲版本控制器。我有2種不同的分支都在那裏:如何將開發分支上的變更上傳到GIT的遠程分支?

1)發展
2)UI

當我嘗試使用此命令從開發推我的最新修改UI分支: 混帳推網ui,會顯示下面的信息。

Counting objects: 43, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (28/28), done. 
Writing objects: 100% (29/29), 66.67 KiB | 0 bytes/s, done. 
Total 29 (delta 15), reused 0 (delta 0) 
remote: Already on 'ui' 
remote: ---------------------------------------------------------------- 
remote: Deployed ui to Leo 
remote: ---------------------------------------------------------------- 
To ssh://[email protected]/srv/git/wa.git 
    bdc7d80..01e85ea ui ->ui 

但是當我git的服務器上檢查UI分支,沒有更新出現在那個特定的分支。 但我可以在瀏覽器中查看應用的更改。

更新問題:

下面是我用來運行命令的步驟:

1)git的狀態

2)git的結帳發展//開發分支的名稱

3)git add

4)git commit

5)GIT中推//推發展分支發展變化僅

6)GIT中結帳UI // UI分支

7)GIT中合併發展

8)GIT中推網絡用戶界面的名稱//在ui分支上推送更改

無論我推動開發分支,我都可以在git存儲庫中看到提交的所有更改,但對於ui分支沒有好運。

注:將工作的罰款,如果我使用混帳推-f命令。對我來說很陌生!

--------------------------------------------- -------------------------------------------------- ---

有人可以建議我該怎麼辦?或者我在命令中犯了錯誤?

謝謝!

回答

2

當我嘗試使用此命令從開發推我的最新修改UI分支:

git push web ui 

推一個分支到另一個是:

git push web development:ui 

先推將:

  • pu SH遠程ui提交了新的提交在本地ui分公司完成提交,
  • 更新(意爲0犯在這裏,因爲你已經做了development分支提交)

然而,你的情況下,你在將dev劃入ui之後,推送了用dev提交更新的UI分支,因此它應該可以工作。

但是:如果它僅在git push -f之後生效,那意味着第一次推送會因爲「非快進推送」而失敗。
然後在push -f之後完成的後續推送(在從devui的又一個合併之後)應該工作。


現在它的工作沒有任何其它非常硬的命令,但只是混帳推。再次感到奇怪!你知道原因嗎?

如果你的本地和回購承諾共享相同的歷史(這應該是一個混帳推-f後的情況下),然後任何隨後推將添加到歷史記錄(無需迫使它)。
所以這將工作:

git push origin ui 

其實,如果您設置了upstream branch(通過git push -u origin ui,具有git config branch.ui.remote檢查),那麼這將工作:

git push 

(檢查你的push policy雖然)

+0

感謝您的回答,但不工作,我剛剛嘗試過。相同的情況! – Chandresh

+0

@Chandresh你能告訴我日誌是否還以'bdc7d80..01e85ea ui - > ui'結尾嗎? (當然不同的SHA1)它應該顯示一個'development - > ui'。或者它拒絕更新'ui',因爲它是當前的分支,只有裸露的repo會接受更新'ui'(http://gitolite.com/concepts/bare.html)。 – VonC

+0

是的,它顯示** development - > ui **,但是當我從git URL檢查分支時,結果相同。它不會更新我的最新更改/提交! – Chandresh

1

嘗試做git reset --hard在您的服務器上。當您推送到遠程非裸回購時,分行不檢查。當您執行git reset --hard時,它將刪除它在工作目錄中看到的所有更改,從而有效地前進到上次提交。你可以把git reset --hard放在服務器上的後取鉤子。

+0

請檢查我更新的問題,查看我用來運行的命令步驟。 – Chandresh