为git回购合并本地更改,而不在新分支机构中提交



当我在一个项目中工作时,有时我的机器需要对一两个或多个配置文件进行特定的更改。目前,我将这些更改存储在本地分支:local-settings中。

然后,当我需要进行错误修复和测试时,我会从远程进行拉取并获取最新信息。我创建了new-branch,然后将local-settings合并到new-branch中,并执行git reset HEAD~1以"撤消"合并提交。从那里开始,我只暂存并提交我的bug修复文件。

这样做有什么害处吗?有没有更好的方法来长期坚持我需要的局部变革?我看到其他问题提到了git stash,但一旦弹出,就会删除隐藏的更改,对吗?这对我来说似乎不是一个好的解决方案。

谢谢!

我认为你可以用相反的方法:不要总是将你的local-settings(这会污染你的历史(合并到new-branch中,只需重新建立你的local-settings的基础并在其上开发错误修复程序(假设local-settings派生自new branch。否则,cherry-pick可能会有所帮助(。然后,完成后,stash您的工作,切换到new-branchstash 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)

你想做的是将我的分支重新设置到D上,如下所示:

git rebase current-parent local-branch --onto D

最新更新