从 github 拉取请求中保留对分支 git 存储库的本地更改
Keep local changes to forked git repository out of github pull request
我目前正在使用来自大型开源项目的分叉存储库的本地副本。我不得不对本地开发副本进行一些更改以便于导入,而不会干扰我的路径上的稳定版本代码——基本上我做了一些相对导入而不是绝对导入。
当我向上游发出拉取请求时,他们不会想要我对导入行所做的本地更改,但为了我的分叉工作副本,我确实想提交它们。处理这种情况的最佳方法是什么?
您只需要在实际发出拉取请求时担心 relative/absolute 路径问题。
您可以继续在本地存储库上工作,也可以使用这些相对路径推送到分叉的存储库。但是当你准备好发出拉取请求时,你必须提交将这些相对路径更改为绝对路径,然后将这些更改推送到你的分叉存储库,然后你可以使用绝对路径发出拉取请求路径。
之后,您可以执行 git revert
添加另一个提交以撤消之前的提交 - 基本上是撤消您所做的更改(这样您就可以返回到使用相对路径而不是绝对路径)。
这可能是最简单的方法。您也许可以编写一个脚本,在每次推送时自动执行此类操作,但我认为这对于这个问题来说太过分了。另请注意,我不是 git 专家,所以或许也可以考虑一下其他人对这个话题的看法。
我目前正在使用来自大型开源项目的分叉存储库的本地副本。我不得不对本地开发副本进行一些更改以便于导入,而不会干扰我的路径上的稳定版本代码——基本上我做了一些相对导入而不是绝对导入。
当我向上游发出拉取请求时,他们不会想要我对导入行所做的本地更改,但为了我的分叉工作副本,我确实想提交它们。处理这种情况的最佳方法是什么?
您只需要在实际发出拉取请求时担心 relative/absolute 路径问题。
您可以继续在本地存储库上工作,也可以使用这些相对路径推送到分叉的存储库。但是当你准备好发出拉取请求时,你必须提交将这些相对路径更改为绝对路径,然后将这些更改推送到你的分叉存储库,然后你可以使用绝对路径发出拉取请求路径。
之后,您可以执行 git revert
添加另一个提交以撤消之前的提交 - 基本上是撤消您所做的更改(这样您就可以返回到使用相对路径而不是绝对路径)。
这可能是最简单的方法。您也许可以编写一个脚本,在每次推送时自动执行此类操作,但我认为这对于这个问题来说太过分了。另请注意,我不是 git 专家,所以或许也可以考虑一下其他人对这个话题的看法。