-->

在冲突,GitHub上的Windows使我处于“垫底”的状态,如何从那里?(On conflict,

2019-08-17 06:15发布

我最近开始使用GitHub上的Windows 。

我刚刚得到一个冲突。 在命令行我也知道如何处理这一点,但GitHub上的Windows选用把我在我不熟悉的状态:

C:\Users\w\Documents\GitHub\CmisSync [(6026d18...)|REBASE +0 ~1 -0 !1 | +0 ~0 -0 !1]> git status
# Not currently on any branch.
# You are currently rebasing.
#   (fix conflicts and then run "git rebase --continue")
#   (use "git rebase --skip" to skip this patch)
#   (use "git rebase --abort" to check out the original branch)
#
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
...

我固定的冲突,犯下的文件,但是当我运行git push有人告诉我:

fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD) state now, use

    git push origin HEAD:<name-of-remote-branch>

什么是推荐的方式来获得我的合并承诺远程主?
我怀疑git push origin HEAD:master会实现这一目标。

Answer 1:

正如我们在那里有说西蒙Boudrias ,如果你真的不知道你衍合过程中做了什么,要开始最好的办法是用git rebase --abort 。 作为动词表示,它将中止当前的底垫,并留下你与你的底垫开始前这是同样的状态信息库和工作副本。

在这之后,你应该做你已经做了启动rebase过程(我不认为你说这是什么,但不认为这是非常重要的,无论是)。 当然底垫将再次启动,而这里就是你原来的问题开始回答。

由于状态输出说,你似乎有冲突。 你应该解决这些问题(我一般用git status --shortgit mergetool以解决这些问题meld ),然后git add文件。 当状态正常(比如,要COMMITED添加,没有冲突,每次将有文件),你应该git rebase --continue而不是git commit

这个想法是git rebase适用一集团承诺对给定的承诺之上。 我真的不知道正在被应用在什么上面什么提交,但有一点是很重要的。 请记住,有可以显示多个冲突,因为提交申请逐一。 使用git log ,看看有什么是最后一次提交申请,我认为必须有在你的文件.git/目录,与此提交,因此目前正在应用的提交信息。

这是一个commmon新手错误(我们都在那里:))尝试包括在解决冲突过程中对文件的修改不知道(或忘记),他们将通过后者提交应用。

所以,我希望,解决一些冲突,添加文件后git rebase --continue荷兰国际集团他们,你应该到达一个幸福的功能库,你就可以git push从那里。

最后,但并非最不重要的:毕竟衍合的时候,使用git log来检查你不修改任何公开承诺。 再说了,你的新分支包含遥控器的HEAD提交。 垫底是强大的,非常危险。 你不想变基公众提交 - 它也许你不想面对的唯一的Git痛苦:)



Answer 2:

首先需要结束rebase通过调用模式git rebase --continue一旦你解决你的冲突。 那么这应该把你回来的分支你拉(你的情况大师)。 你会发现这种情况发生时,在命令行(豪华-git的插件)的意愿表示master ,而不是REBASE

然后,你可以使用推git push origin master 。 额外的参数可以通过GIT中被自动填充,但会取决于您的设置。



文章来源: On conflict, GitHub for Windows puts me in “rebasing” state, how to go from there?