我想获取远程存储库的单个分支(不是所有分支),并创建一个本地跟踪分支,该分支可以跟踪对该远程分支的进一步更新。远程存储库中的其他分支非常大,所以我希望避免获取它们。我怎么做呢?
当前回答
如果你想改变默认的“git pull”和“git fetch”只获取特定的分支,那么你可以编辑.git/config,使远程配置看起来像这样:
[remote "origin"]
fetch = +refs/heads/master:refs/remotes/origin/master
默认情况下,这只会从原点获取master。 查看更多信息:https://git-scm.com/book/en/v2/Git-Internals-The-Refspec
编辑:刚刚意识到这和-t选项对git远程添加所做的事情是一样的。至少,如果你不想在远程添加后删除远程并使用-t再次添加远程,这是一个很好的方法。
其他回答
一种方法是:
git fetch <remotename> <remote branch>:refs/remotes/<remotename>/<local branch>
但这并没有设置跟踪。
要了解更多信息,请参阅git获取的文档。
编辑:正如@user1338062所指出的:如果你想添加新分支的地方还没有存储库的本地克隆,但你想创建一个新的本地存储库,那么git clone——branch <branch_name>——single-branch <repo_url>提供了一个更短的解决方案。
git 版本 2.16.1.Windows.4
只是做一个git获取remoteRepositoryName branchName(例如:git获取origin my_local_branch)就足够了。Fetch将完成,并将创建一个具有相同名称的新本地分支,并将跟踪设置为远程分支。
然后执行git checkout branchName
我的解决方法:
git fetch --depth=1
git checkout <branch_name>
如果您没有本地克隆:
git clone --depth 1 -b <branch_name> <repo_url>
git 版本:2.74
我是这样做的:
git remote add [REMOTE-NAME] [REMOTE-URL]
git fetch [REMOTE-NAME] -- [BRANCH]
如果你想改变默认的“git pull”和“git fetch”只获取特定的分支,那么你可以编辑.git/config,使远程配置看起来像这样:
[remote "origin"]
fetch = +refs/heads/master:refs/remotes/origin/master
默认情况下,这只会从原点获取master。 查看更多信息:https://git-scm.com/book/en/v2/Git-Internals-The-Refspec
编辑:刚刚意识到这和-t选项对git远程添加所做的事情是一样的。至少,如果你不想在远程添加后删除远程并使用-t再次添加远程,这是一个很好的方法。
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别