我的同事和我正在开发同一个存储库。我们将它分成了两个分支,每个分支在技术上都针对不同的项目,但它们有相似之处,所以我们有时会希望master从branch.
master
branch
但是,我有branch. 我的同事怎么能专门拉那个分支?
存储库的 Agit clone似乎没有为他在本地创建分支,尽管我可以看到它们在我的推送之后仍然存在。
git clone
另外,当我最初制作分支时,我做了-b checkout. 这有很大的不同吗?
-b checkout
$ git branch -r origin/HEAD -> origin/master origin/daves_branch origin/discover origin/master $ git fetch origin discover $ git checkout discover
这些是我运行的命令。但它肯定是行不通的。
我希望能够检查该分支,然后推送并提交来自各个协作者或工作站的分支更改。
下面写的所有信息都是准确的,但git switch添加了一个新命令以简化工作。
git switch
如果daves_branch存在于远程存储库中,但不在您的本地分支上,您只需键入:
daves_branch
git switch daves_branch
由于您在本地没有分支,这将自动switch查看远程仓库。然后它还将自动设置远程分支跟踪。
switch
请注意,如果daves_branch在本地不存在,您需要git fetch先使用switch.
git fetch
您需要创建一个跟踪远程分支的本地分支。以下命令将创建一个名为daves_branch的本地分支,跟踪远程分支origin/daves_branch。当您推送更改时,远程分支将被更新。
对于最新版本的 Git:
git checkout --track origin/daves_branch
--track``git checkout -b [branch] [remotename]/[branch]在这种情况下是 [remotename] 是origin的简写,而 [branch] 在这种情况下是daves_branch的两倍。
--track``git checkout -b [branch] [remotename]/[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选项。
--track