在主分支上使用新提交更新fork?

时间:2013-07-18 08:15:18

标签: git version-control

我分叉了分支A并创建了B.现在,A已经被其他人更新了,我想将这些提交带到我的B分叉,所以我可以确保我在那里做的事情仍然适用于新的A内容。

我该怎么做? Git的术语(拉,取,合并等)非常不直观,至少在早期:(

1 个答案:

答案 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技巧的更多信息):


注意:“fork a branch”不是推荐的表达式,因为fork更常用于引用服务器端的克隆repo:请参阅“Git fork is git clone?”。

相反,你会说:“我分支B并创建A”:操作是“分支”(“分叉”)。