一尘不染

Git 获取远程分支

git

我的同事和我正在开发同一个存储库。我们将它分成了两个分支,每个分支在技术上都针对不同的项目,但它们有相似之处,所以我们有时会希望masterbranch.

但是,我有branch. 我的同事怎么能专门拉那个分支?

存储库的 Agit clone似乎没有为他在本地创建分支,尽管我可以看到它们在我的推送之后仍然存在。

另外,当我最初制作分支时,我做了-b checkout. 这有很大的不同吗?

$ git branch -r
origin/HEAD -> origin/master
origin/daves_branch
origin/discover
origin/master

$ git fetch origin discover
$ git checkout discover

这些是我运行的命令。但它肯定是行不通的。

我希望能够检查该分支,然后推送并提交来自各个协作者或工作站的分支更改


阅读 257

收藏
2022-01-27

共1个答案

一尘不染

更新:使用 Git 开关

下面写的所有信息都是准确的,但git switch添加了一个新命令以简化工作。

如果daves_branch存在于远程存储库中,但不在您的本地分支上,您只需键入:

git switch daves_branch

由于您在本地没有分支,这将自动switch查看远程仓库。然后它还将自动设置远程分支跟踪。

请注意,如果daves_branch在本地不存在,您需要git fetch先使用switch.


原帖

您需要创建一个跟踪远程分支的本地分支。以下命令将创建一个名为daves_branch的本地分支,跟踪远程分支origin/daves_branch。当您推送更改时,远程分支将被更新。

对于最新版本的 Git:

git checkout --track origin/daves_branch

--track``git checkout -b [branch] [remotename]/[branch]在这种情况下是 [remotename] 是origin的简写,而 [branch] 在这种情况下是daves_branch的两倍。

对于 Git 1.5.6.5,你需要这个:

git checkout --track -b daves_branch origin/daves_branch

对于 Git 1.7.2.3 及更高版本,这就足够了(它可能开始得更早,但这是我能很快找到的最早确认):

git checkout daves_branch

请注意,在最近的 Git 版本中,此命令不会创建本地分支,而是会将您置于“分离 HEAD”状态。如果您想要一个本地分支,请使用该--track选项。

2022-01-27