master 中本地未​​提交的更改。需要切换到另一个分支

Local uncommited changes in master. Need to switch to another branch

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

我查看了一些答案,但我不认为它们适合我的确切情况。 提前致谢。 :)

对您来说最简单的事情是存储您的工作目录(如果您已暂存任何文件,则可能暂存),创建一个新的功能分支,然后在那里应用您的存储。

# 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 到您第一次开始的位置。

如果您已经在本地向 master 应用了一些提交。在这种情况下,我将执行的解决方案是:

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

git checkout -b new_branch master

2) 现在将 new_branch 推送到远程(如果需要)

git push --set-upstream origin new_branch

3) 现在去找master

git checkout master

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

git log

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

git reset --hard HEAD~N

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

git reset --hard HEAD~5

希望对您有所帮助。