当我在处理项目时,有时我的机器需要对一个或两个或多个配置文件进行特定更改。目前,这些更改已存储在本地分支机构local-settings
中。
然后,当我需要进行错误修复和测试时,我从远程进行了拉动并获取最新信息。我创建了new-branch
,然后将local-settings
合并到new-branch
中,并执行了git reset HEAD~1
以“撤消”合并提交。从那里开始,我仅暂存并提交我的错误修复文件。
通过这种方式进行操作是否会造成损害,并且有更好的方法来持久保存我需要长期进行的本地更改?我看到其他提到git stash
的问题,但这会消除隐藏的更改,对吗?对于我来说,这似乎不是一个好的解决方案。
谢谢!
答案 0 :(得分:0)
我认为您可以采取相反的方式:与其总是将local-settings
(污染您的历史记录)合并到new-branch
中,不如将您的local-settings
改成基础并对其进行错误修复(假设local-settings
来自new branch
。否则,cherry-pick
可以提供帮助)。然后,完成工作后stash
,切换到new-branch
和stash pop
。之后,将commit
的错误修正放入new branch
。
这样,您将始终在local-settings
分支上进行开发,但是在new-branch
中提交更改。
编辑
如果您的local-settings
分支具有多个提交,则可以使用rebase --onto
:
假设您已经这样命名了分支机构:
A -- B -- C -- D (new-branch)
\-- E -- G -- H -- I -- J (current-parent)
\-- K -- L (local-branch)
您要执行的操作是将my-branch重新建立到D提交上,如下所示:
git rebase current-parent local-branch --onto D