我的主分支和开发分支在GitHub上被远程跟踪。如何克隆这两个分支?
当前回答
这个解决方案使我能够将一个存储库“复制”到另一个:
git merge path/to/source.git --mirror
cd source.git
git remote remove origin
git remote add origin path/to/target.git
git push origin --all
git push origin --tags
在目标存储库中,我可以看到与原始存储库相同的分支和标记。
其他回答
从本地回购中克隆不能与gitclone和gitfetch一起使用:许多分支/标签将保持不匹配。
获取包含所有分支和标记的克隆。
git clone --mirror git://example.com/myproject myproject-local-bare-repo.git
要获取包含所有分支和标记但也包含工作副本的克隆,请执行以下操作:
git clone --mirror git://example.com/myproject myproject/.git
cd myproject
git config --unset core.bare
git config receive.denyCurrentBranch updateInstead
git checkout master
您可以轻松切换到分支,而无需使用花哨的“gitcheckout-b somebranch origin/somebranch”语法。您可以执行以下操作:
git checkout somebranch
Git将自动执行正确的操作:
$ git checkout somebranch
Branch somebranch set up to track remote branch somebranch from origin.
Switched to a new branch 'somebranch'
Git将检查在一个远程中是否存在同名的分支,如果存在,它将以与您明确指定的远程分支相同的方式对其进行跟踪。从git 1.8.2.1的git checkout手册页面:
如果未找到<branch>,但中确实存在跟踪分支只有一个具有匹配名称的远程(称为<remote>),视为相当于$git checkout-b<branch>--track<remote>/<branch>
如何为远程源匹配模式上的每个分支创建本地分支。
#!/bin/sh
git fetch --all
git for-each-ref --format='%(refname:short)' refs/remotes/origin/pattern |\
sed 's@\(origin/\)\(.*\)@\2\t\1\2@' |\
xargs -n 2 git branch --track
获取所有远程引用(分支/标记),然后创建本地引用。应该可以在大多数系统上快速运行,而无需查看索引或依靠抨击。
git克隆应该复制整个存储库。尝试克隆它,然后运行gitbranch-a。它应该列出所有分支。如果您想切换到分支“foo”而不是“master”,请使用git checkout foo。
使用您可以记住的命令
我正在使用Bitbucket,一个Atlassian的存储库托管服务。所以我试着遵循他们的文档。这对我来说非常有用。使用以下简单而简短的命令,您可以签出远程分支。
首先克隆存储库,然后转到目标文件夹。最后,但并非最不重要的是,取件和结账:
git clone <repo> <destination_folder>
cd <destination_folder>
git fetch && git checkout <branch>
就是这样。这里有一个更真实的例子:
git clone https://username@bitbucket.org/team/repository.git project_folder
cd project_folder
git fetch && git checkout develop
您将在文档中找到有关命令的详细信息:克隆命令、获取命令、签出命令
推荐文章
- 如何在git中找到原始/master的位置,以及如何更改它?
- Bower: ENOGIT Git未安装或不在PATH中
- Bitbucket上的Git:总是要求密码,即使上传了我的公共SSH密钥
- Git别名-多个命令和参数
- 如何添加一个“打开git-bash这里…”上下文菜单到windows资源管理器?
- 是否可以在Git中只提取一个文件?
- 当我做“git diff”的时候,我怎么能得到一个并排的diff ?
- 在git中如何将提交移动到暂存区?
- 如何缩小。git文件夹
- 如何在本地删除分支?
- 找到包含特定提交的合并提交
- Windows上Git文件的权限
- 如何从一个枝头摘到另一个枝头
- 如何获得在两次Git提交之间更改的所有文件的列表?
- 什么是跟踪分支?