我还是git的新手所以请原谅我,如果以前曾经问过这个问题,我一直无法找到解决办法。我正在使用git和gerrit,我正在尝试将分支issue
合并到master
分支中,但是,当我这样做时,似乎并没有提交/推送到远程存储库。注意:它似乎在本地成功合并没有任何冲突。我正在尝试合并每个分支中最新推送的提交。
所以,这就是我所做的:
1)切换到主分支。 2)在Eclipse GUI中使用git bash shell运行git merge issue
3)git status
> 2远程仓库以上提交4)git pull
>没有新的变化5)git commit
>没有新变化6)git push
>远程拒绝,没有新的变化。
所有更改都在每个分支中提交和推送,我只是尝试将issue
中的更改合并到master
。当我从git bash shell中执行git merge
时,它似乎会挂起至少15分钟,如果当时gerrit负载很重,它应该需要2。无论我做什么,在我合并分支后,它告诉我我在2个提交之上,但我知道的每个命令都会说我没有任何改变。包含的命令:pull,push,commit,rebase(--soft和--mixed),reset等。我发现的唯一不同之处就是如果我做git log
它会显示从合并中提交,git log master
没有提交。
我已经擦除了我的本地存储库并重新创建了几次以查看是否有一些我搞砸了。每次我都遇到这个问题。任何帮助表示赞赏。
编辑1: git状态结果:
$ git status
On branch master
Your branch is ahead of 'origin/master' by 2 commits.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
git push bash shell:
$ git push
*
注意:在git push上,*实际上并不存在,但只有|
只是闪烁,这就是它似乎被挂起的地方。
编辑3:同样的推送仍然挂断,1小时后。
编辑2: git remote bash shell:
$ git remote -v show
origin ssh://sparks@gerrit:PORT/PROJECT (fetch)
origin ssh://sparks@gerrit:PORT/PROJECT (push)
除了git push
答案 0 :(得分:1)
来自问题分支的合并是一个快进合并,即只推进目标分支的分支指针(您已检出的分支)的合并,并且不会产生任何新的提交。
除非您为推送添加其他选项,否则如果提交SHA-1已知,Gerrit拒绝接受推送到refs / for / branchname的更改,即它不是新提交。在您的情况下,问题分支的内容之前已被推送到Gerrit。
强制创建合并提交传递--no-ff
到git merge
。合并提交将最终成为Gerrit的可审查变更。