我在一个分支上做了一些工作:WIP-my-branch.我推了我的分支并做了一个PR(还没有被批准b/c它正在进行中)。我被卡住了,然后请求帮助;一个同事然后把一个提交推到了我的分支上。我可以在Github上看到她的提交,但是在我的分支上执行git pull并不能得到她的提交(分支上最近的提交)。我怎么能做到这一点?
WIP-my-branch
git pull
xfb7svmp1#
你需要更新你的分支git pull origin * 你的分支名称 *
0sgqnhkj2#
我认为它有助于认识到分支是 * 特定于一个特定的Git存储库 *。您的同事未在您的分支上提交。她在不同的分支上做了一个,可能有也可能没有相同的名字。您正在使用 * 两个 * 存储库。一个是你的,在你的电脑上。第二个是GitHub上的。这两个不同的存储库有不同的分支。这些不同的分支可能有相同的 * 名称 *,一旦你获取(从它们获取提交)或推送(向它们发送提交),不同的分支也可以有相同的提交:在那之后,你可以称它们为“相同的”,但它们在一个重要的方面仍然不同:改变一个不会影响另一个(还没有)。您的同事也(可能)使用至少两个存储库:一个在GitHub上,一个在GitHub上。你可能无法直接联系到她的,但你应该可以联系到GitHub上的那个。GitHub上的那个甚至可能是你已经在使用的GitHub上的那个。如果你的同事在GitHub上使用的是你在GitHub上使用的同一个仓库,那么你在自己的Git中已经有了这个仓库的名字。你叫它origin。您可以运行git fetch origin来从origin获取提交。另一个Git--GitHub上的那个--里面有各种各样的分支名称。你的Git会得到他们的提交,然后在你的仓库中将他们的分支 * 重命名 * 为origin/*whatever*,这样无论他们 * 有什么名字,你的都是不同的-你的不是以origin/开头的。(从技术上讲,您的origin/*名称是 * 远程跟踪名称 * 而不是分支名称,但重要的是它们以origin/开头。如果你的同事在GitHub上使用了一个 * 不同的 * 仓库,你需要在你自己的Git仓库中创建另一个 * 远程仓库 *:
origin
git fetch origin
origin/*whatever*
origin/
origin/*
git remote add <name> <url>
其中 * name * 部分是您想使用的任何名称-我不知道您同事的名称;我在这里只使用alice-* url * 部分是在GitHub上访问该Git所需的URL:
name
alice
url
git remote add alice <url>
现在你可以运行:
git fetch alice
这将带来仓库中你没有的任何提交,并将这些分支重命名为alice/master,alice/develop,等等-基本上,所有新的“远程跟踪”alice/*名称。现在你会得到她的承诺。她在自己的存储库中制作了它,在那里它是完全私有的,但她随后将其发送到她的GitHub存储库,在那里你可以得到它。你得到了它,现在它在你自己的仓库里,所以现在你可以使用它了。如果Alice在名为WIP-my-branch的分支上创建了它,然后将其发送到名为WIP-my-branch的分支下的GitHub存储库中,那么现在它就在 youralice/WIP-my-branch下。
alice/master
alice/develop
alice/*
alice/WIP-my-branch
qrjkbowd3#
您需要添加同事的遥控器并合并他们的更改。
git remote add coworker_remote url_to_their_repo git remote update git merge coworker_remote/WIP-my-branch
9lowa7mx4#
git merge origin/coworkers_branch
你可以在Github上找到你的coworkers_branch。在您的PR中,在Commits下,单击您同事的commit。它们的本地分支名称通常会列在提交消息标题的左侧。
coworkers_branch
gmxoilav5#
git fetch origin <your_branch_name>
和我一起工作
9o685dep6#
我通常做以下几点,如果我错了请纠正我
f0brbegy7#
git merge〈你同事的commit_hash〉
7条答案
按热度按时间xfb7svmp1#
你需要更新你的分支git pull origin * 你的分支名称 *
0sgqnhkj2#
我认为它有助于认识到分支是 * 特定于一个特定的Git存储库 *。您的同事未在您的分支上提交。她在不同的分支上做了一个,可能有也可能没有相同的名字。
您正在使用 * 两个 * 存储库。一个是你的,在你的电脑上。第二个是GitHub上的。这两个不同的存储库有不同的分支。这些不同的分支可能有相同的 * 名称 *,一旦你获取(从它们获取提交)或推送(向它们发送提交),不同的分支也可以有相同的提交:在那之后,你可以称它们为“相同的”,但它们在一个重要的方面仍然不同:改变一个不会影响另一个(还没有)。
您的同事也(可能)使用至少两个存储库:一个在GitHub上,一个在GitHub上。你可能无法直接联系到她的,但你应该可以联系到GitHub上的那个。GitHub上的那个甚至可能是你已经在使用的GitHub上的那个。
如果你的同事在GitHub上使用的是你在GitHub上使用的同一个仓库,那么你在自己的Git中已经有了这个仓库的名字。你叫它
origin
。您可以运行git fetch origin
来从origin
获取提交。另一个Git--GitHub上的那个--里面有各种各样的分支名称。你的Git会得到他们的提交,然后在你的仓库中将他们的分支 * 重命名 * 为origin/*whatever*
,这样无论他们 * 有什么名字,你的都是不同的-你的不是以origin/
开头的。(从技术上讲,您的origin/*
名称是 * 远程跟踪名称 * 而不是分支名称,但重要的是它们以origin/
开头。如果你的同事在GitHub上使用了一个 * 不同的 * 仓库,你需要在你自己的Git仓库中创建另一个 * 远程仓库 *:
其中 *
name
* 部分是您想使用的任何名称-我不知道您同事的名称;我在这里只使用alice
-*url
* 部分是在GitHub上访问该Git所需的URL:现在你可以运行:
这将带来仓库中你没有的任何提交,并将这些分支重命名为
alice/master
,alice/develop
,等等-基本上,所有新的“远程跟踪”alice/*
名称。现在你会得到她的承诺。她在自己的存储库中制作了它,在那里它是完全私有的,但她随后将其发送到她的GitHub存储库,在那里你可以得到它。你得到了它,现在它在你自己的仓库里,所以现在你可以使用它了。如果Alice在名为
WIP-my-branch
的分支上创建了它,然后将其发送到名为WIP-my-branch
的分支下的GitHub存储库中,那么现在它就在 youralice/WIP-my-branch
下。qrjkbowd3#
您需要添加同事的遥控器并合并他们的更改。
9lowa7mx4#
你可以在Github上找到你的
coworkers_branch
。在您的PR中,在Commits下,单击您同事的commit。它们的本地分支名称通常会列在提交消息标题的左侧。gmxoilav5#
和我一起工作
9o685dep6#
我通常做以下几点,如果我错了请纠正我
f0brbegy7#
git merge〈你同事的commit_hash〉