我想获取一个远程分支,然后在我与某人共享时,将当前工作分支重新绑定。通常我会这样做:
git fetch
git rebase origin/branch_im_working_on
这似乎工作正常,但它似乎从远程存储库中获取所有分支。所以我环顾四周找到了这个:
git fetch origin branch_im_working_on
当我这样做时,git告诉我它取了HEAD然后尝试做:
git rebase origin/branch_im_working_on
如果我尝试:
git rebase origin branch_im_working_on
我遇到了很多合并冲突,所以不得不重新使用原始命令让我的分支更新:
git fetch
git rebase origin\branch_im_working_on
有人可以帮我理解这里发生的事情吗?
答案 0 :(得分:1)
Stream
和git fetch
git fetch origin
(你可以通过origin
检查遥控器),这两个命令的工作原理相同。git remote -v
和origin
。 upstream
将从遥控器git fetch
和origin
获取所有更改。 upstream
只会从远程git fetch origin
获取更改。此外,如果您只想从遥控器获取某个分支,则可以使用origin
。例如git fetch remotename branchname
只会从源git fetch origin branch_im_working_on
获取更改。
假设提取历史记录在获取后显示如下:
branch_im_working_on
如果您希望在…---A---B---C---D branch_im_working_on
\
E---F origin/branch_im_working_on
(最新提交)的顶部进行本地更改(提交C
并提交D
),则以下任何一个命令都可以正常工作:
origin/branch_im_working_on
然后提交历史记录将是:
git rebase origin branch_im_working_on
git rebase origin/branch_im_working_on
git fetch origin branch_im_working_on --rebase
但命令…---A---B---E---F---C---D branch_im_working_on
|
origin/branch_im_working_on
无法正常工作(适用于Windows操作系统),因为git rebase origin\branch_im_working_on
不是有效分支(既不是本地分支也不是跟踪分支)。