1

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

我使用 SourceTree GUI 工具在本地创建了一个名为 CP_Server_Release 的远程跟踪分支。设置此分支以跟踪远程分支 origin/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) 中有关。如果是这样,那是为什么?

谢谢您的帮助!

4

2 回答 2

1

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

$ git config --global push.default upstream
$ git push
于 2014-01-15T16:17:42.117 回答
0

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

取而代之的是,您可以使用它git checkout -b yourNewBranch来创建一个新的分支并在其上定位。

于 2014-01-15T16:11:12.813 回答