我计划根据 github 上的项目添加一些代码,例如添加一些适合我的项目的定制选项。
一个想法是分叉并创建一个分支来包含我的所有更改。每当上游有新的更改时,我都会获取它们并将其重新设置到我的分支。
假设这些是我的遥控器:
$ git remote -v
my [email protected] /cdn-cgi/l/email-protection:khing/myproject.git (fetch)
my [email protected] /cdn-cgi/l/email-protection:khing/pyproject.git (push)
up https://github.com/upstream/project.git (fetch)
up https://github.com/upstream/project.git (push)
上游有三个提交:A、B、C,我有两个额外的提交:M、N
所以我想当前的分支会是这样的:
up: A--B--C
my: A--B--C--M--N
假设上游有两个新提交 D 和 E,我应该获取并变基(是的,我可能必须修复合并冲突),所以我猜它会是:
up: A--B--C--D--E
my: A--B--C--D--E--M--N
这是维护我自己的分支同时保持上游分支最新状态的好方法吗?
是的。这就是我在《将新更新从原始 GitHub 存储库提取到分叉的 GitHub 存储库 https://stackoverflow.com/a/3903835/6309".
自该答案(2010)以来,您可以:
-
配置为始终从原始上游存储库中提取
git remote set-url origin https://github.com/upstream/project.git
git remote set-url --push origin [email protected] /cdn-cgi/l/email-protection:khing/myproject.git
-
确保您始终在获取的内容之上重新调整本地提交:
(需要 Git 2.9+,2016 年 6 月,请参阅“Can “git pull“自动隐藏和弹出待处理的更改? https://stackoverflow.com/a/30209750/6309")
git config pull.rebase true
git config rebase.autoStash true
然后一个简单的git pull
足够。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)