2014-01-15 150 views
1

我無法理解推送到遠程分支時我做錯了什麼。這是我做的:git遠程跟蹤分支推新分支

我使用SourceTree GUI工具在本地創建了一個名爲CP_Server_Release的遠程跟蹤分支。該分支設置爲跟蹤遠程分支源/ ICN_Portal_Server_Release。爲了方便起見,我想爲本地分支稍微縮短名稱。

我對CP_Server_Release進行了更改並提交。

然後我推送了我的更改,但最終在遠程回購中創建了一個名爲CP_Server_Release的新分支!這不是我期待的是將我的更改推送到ICN_Portal_Server_Release中。所以我覺得跟蹤設置有問題。

然後我刪除了我無意中創造了新的遠程分支和我保證我是通過運行下面的跟蹤我想分支:

moliveira-> git branch -u origin/ICN_Portal_Server_Release 
Branch CP_Server_Release set up to track remote branch ICN_Portal_Server_Release from origin. 
[~/src_git/icnportal_server/src/main/java] 
moliveira-> git status 
# On branch CP_Server_Release 
# Your branch is ahead of 'origin/ICN_Portal_Server_Release' by 1 commit. 
# (use "git push" to publish your local commits) 
# 
nothing to commit, working directory clean 

這看起來我的權利。我前面提交了一個提交,因爲上次我推送了一個新分支,而不是將我的更改推送到origin/ICN_Portal_Server_Release。它也看起來像我正在跟蹤正確的遠程分支。

所以,現在我想繼續推進我對原始/ ICN_Portal_Server_Release的更改。

[~/src_git/icnportal_server/src/main/java] 
moliveira-> git push 
Counting objects: 109, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (24/24), done. 
Writing objects: 100% (30/30), 5.05 KiB | 0 bytes/s, done. 
Total 30 (delta 10), reused 0 (delta 0) 
To http://pdevicnos101.corp.intuit.net:81/git/cns/icnportal_server.git 
* [new branch]  CP_Server_Release -> CP_Server_Release 

它創建了一個新的分支!我不明白爲什麼。我究竟做錯了什麼?我唯一能想到的是它可能與我不在repo的根目錄(/ icnportal_server)中,而是在一個子目錄(src/main/java)中有關。如果是這樣,爲什麼呢?

感謝您的幫助!

回答

1

嘗試下配置(適用於我1.8.3.2 Git版本)

$ git config --global push.default upstream 
$ git push 
+0

這有效,謝謝你的回答。當我看到你的回覆後,我在push.default的值上挖了一下,發現了這個有用的帖子,提供了更多的細節:http://stackoverflow.com/questions/8170558/git-push-set-target-for-branch – moliveira

0

當你使用git branch你正在創建一個新的分支,但沒有定位它。所以之後,你必須做git checkout yourNewBranch

取而代之,您可以使用git checkout -b yourNewBranch來創建新分支並在其上定位。

+0

感謝您的答覆。我忽略了那部分,但我相信我是在正確的分支上,或者當我推動時它不會創建一個新分支。 – moliveira