基本问题,但这种情况一直发生在我身上:
- 在
working-branch
中进行更改 - 切换到
master
-
git merge working-branch
-
git push
-
cap deploy
(到分期) - 泡一杯新茶
然后我回来想别的事情并开始做一些改变......同时还在 master 上。
有什么简单的方法可以:
- 防止直接编辑母版(可能是警告)
- 将所有编辑移至
working-branch
清除master
这样我就可以继续编辑working-branch
或 - 将编辑旋转到一个全新的分支
new-working-branch
然后丢弃working-branch
?
冒险并尝试了 this page 的“分支”部分后半部分的建议。但这只是消除了我所有的编辑?!也许是因为在 git branch dubious-experiment
之后和 git checkout master
git status
在两个分支上是相同的(在主分支上不是“干净的”)。所以git reset --hard <SHA1sum>
消除了两者的所有变化?!
git branch dubious-experiment
M---N-----O----P---Q ("master" and "dubious-experiment")
git checkout master
# Be careful with this next command: make sure "git status" is
# clean, you're definitely on "master" and the
# "dubious-experiment" branch has the commits you were working
# on first...
git reset --hard <SHA1sum of commit N>
最佳答案
根据您的描述,我假设您还没有提交任何更改——对吗?
如果是,这是您的答案:
如何防止直接编辑母版
您需要在编辑器中进行设置,但这可能会很困难。在提示符和编辑器中显示当前分支有很大帮助。
如何将更改移动到新分支 new-working-branch
然后丢弃 working-branch
git checkout -b new-working-branch
git add …
git commit -m "mycommit"
因为你还没有向 master 提交任何东西,所以你不需要在 master 上改变任何东西。如果您愿意,现在可以丢弃您的工作分支。
如何将更改移至working-branch
git checkout -b temp-branch
git add …
git commit -m "mycommit"
git rebase --onto working-branch master
git checkout working-branch
git reset --hard temp-branch
git branch -d temp-branch
如果您的更改不与 master 上的任何更改发生冲突,但不与工作分支中的任何更改发生冲突,则可以更简单地完成此操作:
git stash
git checkout working-branch
git stash pop
关于git - 如何将更改移出 master 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14506910/