git远程跟踪分支推动新分支

时间:2014-01-15 16:03:36

标签: git branch git-push remote-branch

在推送到远程分支时,我无法理解我做错了什么。这是我做的:

我使用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,因此我提前一次提交。它看起来我正在跟踪正确的远程分支。

所以现在我想继续将我的更改推送到origin / 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)中。如果是这样,为什么呢?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

尝试下一个配置(适用于我的1.8.3.2 git版本)

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

答案 1 :(得分:0)

当您使用git branch时,您正在创建一个新分支,但没有定位它。所以在那之后你必须做git checkout yourNewBranch

除此之外,您可以使用git checkout -b yourNewBranch在其上创建新的分支和位置。