我正在一个分支(feature01)上工作,它仍在进行中。现在我必须离开 WIP 分支并开始处理另一个功能/错误修复,为此,我必须从我的开发分支中创建一个新分支。我通常将所有更改存储在 feature01 中并开始在新分支上工作。我不太喜欢这个解决方案,因为我可以在新分支上工作一天左右,而且我必须记住存储中有些东西。每个分支是否有任何本地化版本的存储或类似的东西,以便我可以在不同的 WIP 分支之间移动,而不必存储一堆东西并手动跟踪它们。
我想到的一个解决方案是在 checkout 到新分支之前提交本地更改,然后当在 WIP 分支之一上完成工作时,我可以将一些提交与更有意义的消息压缩在一起,而不是而不是有一堆没有那么有用的消息的提交。
我想知道你们是否知道这个问题的更好解决方案,或者这个问题是否是因为我的 git 工作流程不正确而出现的。我在网上搜索了解决方案,但大多数人建议 stash ,当更改在 stash 中保留较长时间时,我不太喜欢这种做法。
干杯。 瓦卡尔
最佳答案
我建议使用临时提交:
# you have unfinished modifications to save before switching
git commit -am "temp - DO NOT PUSH"
git checkout other-branch
然后您可以处理 other-branch
,完成后,可以轻松撤消 previous-branch
上的提交同时保留其内容
git checkout previous-branch
git reset HEAD^
<小时/>
当然,有了别名就更容易了
git config --global alias.ct 'commit -am "temp - DO NOT PUSH"'
git config --global alias.rs1 'reset HEAD^'
然后就
# to save uncommited changes ON the branch
git ct
# to "unravel" a temp commit
git rs1
关于java - Git 是离开 WIP 分支并开始在另一个分支上工作的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58857916/