合并git repo的本地更改而无需提交新分支

时间:2018-12-11 16:05:54

标签: git settings

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

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

通过这种方式进行操作是否会造成损害,并且有更好的方法来持久保存我需要长期进行的本地更改?我看到其他提到git stash的问题,但这会消除隐藏的更改,对吗?对于我来说,这似乎不是一个好的解决方案。

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您可以采取相反的方式:与其总是将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)

您要执行的操作是将my-branch重新建立到D提交上,如下所示:

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