我分叉了分支A并创建了B.现在,A已经被其他人更新了,我想将这些提交带到我的B分叉,所以我可以确保我在那里做的事情仍然适用于新的A内容。
我该怎么做? Git的术语(拉,取,合并等)非常不直观,至少在早期:(
答案 0 :(得分:1)
我会建议(如果没有人从B中撤出):
你所拥有的是一个分支A
,在 upstream repo 中有新的进化和可能的提交:
a--a--a (origin/A)
/
a--a--a A
\
b--b--b (B, local branch)
首先确保A
与上游回购内容保持同步:origin/A
:
git checkout A
git pull
那会给你:
a--a--a--a--a--a (A, origin/A)
\
b--b--b (B, local branch)
然后你会在B
之上修改在A
上完成的本地修改(我想这里A
has an upstream branch,意思是it does track origin/A
,你可以用{{{}}来查看1}})
git branch -avvv
这给了你:
git checkout B
git rebase A
请注意,更改了a--a--a--a--a--a (A, origin/A)
\
b'--b'--b' (B, local branch)
的历史记录,因此如果已经推送B
,则必须B
,如果其他人已经开始处理push --force origin B
,这可能会很危险}。
请参阅(有关rebase技巧的更多信息):
git rebase
and git push
: non-fast forward, why use?”注意:“fork a branch”不是推荐的表达式,因为fork更常用于引用服务器端的克隆repo:请参阅“Git fork is git clone?”。
相反,你会说:“我分支B
并创建A
”:操作是“分支”(不“分叉”)。