如何将本地更改从master提交到另一个分支

时间:2019-06-19 07:55:47

标签: git gitlab

我是刚接触Git的人,对我来说有些事情或命令很清楚。现在,我的问题描述如下:

昨天我获得了master的最新版本。我进行了一些本地更改,最终超出了预期。 现在,我想将此本地状态提交给另一个branch(名为“ image_acquisition” )。

所以我的摘要是:

  1. 我是“ 2落后于主人”。为了避免损坏任何物品,我需要考虑什么?这个步骤甚至有必要吗?

  2. 更重要的是:命令应该如何使分支上的所有内容保持干净?

我只是害怕丢失所有更改,所以我问你一个问题,希望你能进一步帮助我。

1 个答案:

答案 0 :(得分:4)

如果您还没有尚未完成本地工作,那么我建议您执行git stash来隐藏您当前的工作目录和舞台。然后,从master创建一个新分支并应用存储。试试这个:

# from master
git stash
git checkout -b your_feature
git stash apply
git commit -m 'completed a feature'

这将使您进入新的分支your_feature,并且一次提交包含您的所有工作。从这时起您将要执行的操作取决于您的工作流程。典型的下一步是将分支推送到远程,并创建一个拉取请求:

git push origin your_feature
# then create pull request on GitHub, Bitbucket, etc.

如果您已经已经进行了一次或多次提交,那么情况就更加复杂了。在这种情况下,您可以只提交本地工作,然后创建一个新分支:

# from master
git commit -m 'completed a feature'
git branch your_feature

然后,您可以将master回滚到提交之前。例如,如果您已经进行了三次提交,包括上面的一次,那么您可以尝试:

git reset --hard HEAD~3

现在,您有了一个真正的功能分支,其中包含三个提交,master应该在遥控器后面,而不应该在遥控器前面。