协助基础和合并

时间:2019-07-10 20:24:57

标签: git github

我已经从development分支到<working-branch>,进行了一些更改并将所有内容提交回GitHub的<working-branch>。在GitHub上发出拉动请求,审查,批准了所有代码。现在由于某种原因(我还不太初级),他们不想使用GitHub进行合并,而是想在命令行上使用git并执行以下操作:

  • 所有提交合并为一个“干净”提交
  • 确保将提交标记为<working-branch>(我认为它目前是“已请求修复程序”。)
  • 将提交内容合并到development

我通过SSH进入工作的存储库并执行以下操作,包括git的输出。我必须匿名化任何识别信息。

好的,我不确定我所做的是否正确。根据给出的一些相互矛盾的文档,这是我的最佳猜测。

当我做git rebase -i origin/<working-branch>时,它给了我一条非注释行noop,这不是我期望的。我期待着我所做的所有提交的清单。我想在这里停下来,但是当我在编辑器中执行:q时,它继续进行操作并重新设置了基准,并且没有让我选择中止操作。

$ git checkout origin/<working-branch>
Note: checking out 'origin/<working-branch>'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at <hash> Made requested fixes.

$ git rebase -i origin/<working-branch>
Successfully rebased and updated detached HEAD.

$ git merge
fatal: No current branch.

$ git status
HEAD detached at origin/<working-branch>
nothing to commit, working tree clean

最后两个结果为“致命”,“ HEAD分离”和“无可奉告”的结果看起来很恐怖。我不知道它们是什么意思,希望我没有破坏存储库。任何人都可以帮助消除这种混乱吗?

1 个答案:

答案 0 :(得分:1)

要取消分离:

git checkout working-branch

noop是因为您基于自己的分支机构。要重新建立开发分支,请执行以下操作:

git fetch
git rebase -i origin/develop

它将为您提供有关提交的文本编辑器视图。如果要将它们压缩为一个干净的提交,请将第一行以外的所有内容从pick更改为s。保存并退出文件,您将看到一个文本编辑器屏幕,用于写入提交消息(每次提交)。保存并退出,重新定标已经结束。

如果重新定标显示存在冲突,则可以撤消它:

git rebase --abort

然后Google如何解决冲突:)

如果有效,则必须使用:

git push --force

警告:强制推送将覆盖远程服务器上的内容,这是一种破坏性操作。确保您肯定在工作分支中。

相关问题