master中的本地uncommited更改。需要切换到另一个分支

时间:2018-03-03 09:22:38

标签: git git-branch git-commit master

我是WebDev实习生,我在主分公司做了一些工作。 我已经做了一个星期的工作而没有意识到我在主分公司工作。 我需要切换分支,以便我可以从不是主分支的分支提交本地更改。 我需要做什么:

  • 将我的主分支的所有本地更改带到其他分支。
  • 从该分支提交更改。
  • 为您提供正确的答案验证。 :P

我经历了一些答案,但我不认为他们能够满足我的确切情况。 提前致谢。 :)

2 个答案:

答案 0 :(得分:2)

您最容易做的事情就是隐藏您的工作目录(如果您已暂存任何文件,可能会暂存),创建一个新的功能分支,然后在那里应用您的存储。

# from the master branch
git stash                      # stash your work
git checkout -b your_feature   # create and switch to a feature branch
git stash apply                # then apply your work to that branch

然后,您可以将您的工作提交到your_feature分支:

git add .
git commit -m 'Finished my work'

git stash命令的工作原理是进行两次(有时是三次)提交,其中包含工作目录和阶段的内容。然后它会将master回滚到您第一次开始的位置。

答案 1 :(得分:0)

如果您已在本地将一些提交应用于主服务器。我将在这种情况下做的解决方案是:

1)首先创建一个新的brach,它将是master的副本。

git checkout -b new_branch master

2)现在将new_branch推入远程(如果你想)

git push --set-upstream origin new_branch

3)现在去主人

git checkout master

4)现在转到日志,查看您要从master中删除的提交次数。

git log

让'N'成为您所做的提交次数。因此,要从master中删除这些提交,请使用:

git reset --hard HEAD~N

例如,您要删除最近的5次提交。所以,它将是:

git reset --hard HEAD~5

希望它会对你有所帮助。