如何在Git中克隆单个分支?

我有一个本地的名为“ skeleton”的Git存储库,用于存储项目框架。 它有几个分支,分别用于不同类型的项目:

casey@agave [~/Projects/skeleton] git branch
* master
  rails
  c
  c++

如果我想签出新项目的master分支,我可以做

casey@agave [~/Projects] git clone skeleton new
Initialized empty Git repository in /Users/casey/Projects/new/.git/

一切都是我想要的。 具体来说,新的master分支指向骨架master分支,我可以推动和拉动以移动对基本项目设置的更改。

但是,如果我要克隆另一个分支,那是行不通的。 我无法理解它,所以我只拉了我想要的分支,例如rails分支,然后默认情况下,新的存储库有一个master分支,该master分支可推入和拉出骨架存储库的rails分支。

有一个好的方法去做吗? 或者,也许这不是Git想要我构造事物的方式,我当然对此持开放态度。 也许我应该有多个存储库,而Ruby on Rails框架存储库跟踪主框架存储库? 以及任何克隆Ruby on Rails骨架存储库的项目。


#1楼

git-clone手册页 :

--single-branch是克隆期间的朋友,请记住与--branch <branch name>一起使用,否则仅克隆远程主HEAD(默认为master)

始终记得执行Ctrl + F5键来读取新鲜的源代码,而不是从缓存中读取源代码:-)(我很久不知道这个选项了。)


#2楼

您可以尝试漫长的方法:

mkdir newrepo.git
cd newrepo.git
git init
git remote add origin file:///path/to/original
git fetch origin branchiwant:refs/remotes/origin/branchiwant
git checkout -b branchiwant --track origin/branchiwant

这是什么:

  • 创建并初始化一个空的Git存储库。
  • 将原始存储库添加为名为origin的远程站点
  • 仅从远程调用origin提取所需的分支。
  • 创建并签出一个新分支,该分支设置为跟踪刚刚克隆的源分支。

希望那会是你所追求的。


#3楼

您可以使用以下命令进行操作:

git clone -b branch_name --single-branch project_url local_folder_to_clone_in

#4楼

可以分两步完成

  1. 克隆存储库

    • git clone <http url>
  2. 结帐您想要的分支

    • git checkout $BranchName

#5楼

  1. 打开Git Bash外壳。
  2. 在文件系统中要检出的目录中创建一个目录。
    • $ mkdir Feature_develop_branch
  3. 将目录更改为Feature_develop_branch文件夹。
    • $ cd Feature_develop_branch
  4. 使用外部克隆URL克隆存储库。
  5. 克隆后,将目录更改为创建的repositoryName。
    • $ cd / repositoryName
  6. 签出分支。
    • $ git checkout <Branch Name>

#6楼

使用Git版本1.7.3.1(在Windows上),这是我的工作( $BRANCH是我要检出的分支的名称, $REMOTE_REPO是我要从其克隆的远程存储库的URL):

mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f origin $REMOTE_REPO
git checkout $BRANCH

这种方法的优点是,随后的git pull (或git fetch )调用也将只下载所请求的分支。


#7楼

git clone <url> --branch <branch> --single-branch

只需输入URL和分支名称。


#8楼

打开cmd。

cd folder_name (输入克隆分支的路径)

只需一个命令:

git clone url_of_projecturltoclone -b branch_name

#9楼

要克隆您没有公钥的Git分支,请使用以下命令:

git clone -b <branch> <Git repository URL or clone URL you get from Git repository>

#10楼

仅克隆一个分支。 这是最简单的方法:

$ git clone -b BRANCH_NAME --single-branch git@bitbucket.org:___/PROJECTNAME.git

#11楼

要克隆特定分支,可以执行以下操作:

git clone --branch yourBranchName git@yourRepository.git


#12楼

有点晚了,但是我想添加我用来解决这个问题的解决方案。 我在这里找到了解决方案。

无论如何,问题似乎是在问“如何从另一个存储库的分支开始一个新项目?”

为此,我使用的解决方案是首先在github或任何地方创建一个新的仓库。 这将用作新项目的仓库。

在本地计算机上,导航到具有要用作新项目模板的分支的项目。

运行命令:

git push https://github.com/accountname/new-repo.git +old_branch:master

这样做是将old_branch推送到new-repo,并将其设置为新repo的主分支。

然后,您只需要将新存储库克隆到新项目的本地目录中,并在旧分支处启动一个新项目即可。


#13楼

让我们以烧瓶回购为例。 除母版外,它还有3个分支。 让我们签出1.1.x远程分支

克隆git repo

git clone https://github.com/pallets/flask

cd进入仓库。

cd flask

获取远程分支1.1.x

git fetch origin 1.1.x

结帐分支

git checkout 1.1.x

您将切换到分支1.1.x,它将跟踪远程1.1.x分支。


#14楼

一种方法是执行以下操作。

git clone user@git-server:project_name.git -b branch_name /your/folder

其中branch_name是您选择的分支,而“ / your / folder”是该分支的目标文件夹。 的确,这将带来其他分支机构,使您有机会来回合并。 现在,从Git 1.7.10开始,您现在可以执行此操作

git clone user@git-server:project_name.git -b branch_name --single-branch /your/folder

#15楼

注意: git1.7.10 (2012年4月)实际上允许您克隆一个分支

# clone only the remote primary HEAD (default: origin/master)
git clone --single-branch

as in:
git clone <url> --branch <branch> --single-branch [<folder>]

您可以在t5500-fetch-pack.sh看到它:

test_expect_success 'single branch clone' '
  git clone --single-branch "file://$(pwd)/." singlebranch
'

东武 评论

进行浅层克隆时,这是隐式的。
这使git clone --depth 1成为节省带宽的最简单方法。

自Git 1.9.0(2014年2月)以来,浅层克隆支持数据传输(推/拉),因此该选项现在更加有用。
请参阅“ git clone --depth 1 (浅克隆)是否比它有用吗? ”中的更多内容。


在“ 将浅层克隆转换为完整克隆 ”(git 1.8.3+)中详细介绍了“撤消”浅层克隆

# unshallow the current branch
git fetch --unshallow

# for getting back all the branches (see Peter Cordes' comment)
git config remote.origin.fetch refs/heads/*:refs/remotes/origin/*
git fetch --unshallow

克里斯评论道:

使缺少的分支反转的神奇路线--single-branch是(git v2.1.4):

git config remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
git fetch --unshallow  
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要将本地代码提交到Git仓库的某个指定分支,可以按照以下步骤进行操作: 1. 首先,需要将本地代码库初始化为Git仓库。在本地代码库根目录下运行命令: ``` git init ``` 2. 接着,将需要提交的文件添加到Git暂存区。在本地代码库根目录下运行命令: ``` git add <file> ``` 其,`<file>`为需要提交的文件名或路径。 3. 然后,将文件提交到Git仓库。在本地代码库根目录下运行命令: ``` git commit -m "提交说明" ``` 其,`提交说明`为本次提交的注释说明。 4. 最后,将本地代码库的提交推送到Git远程仓库的指定分支。在本地代码库根目录下运行命令: ``` git push <remote> <branch> ``` 其,`<remote>`为Git远程仓库的名称,`<branch>`为需要提交到的指定分支名称。 需要注意的是,在执行`git push`命令之前,需要先将本地代码库与远程仓库进行关联。可以使用以下命令进行关联: ``` git remote add <remote> <url> ``` 其,`<remote>`为Git远程仓库的名称,`<url>`为远程仓库的URL地址。 ### 回答2: 要将本地代码提交到Git仓库的某个指定分支,可以按照以下步骤进行操作: 1. 首先,在本地计算机上安装并配置好Git。确保在命令行或终端窗口可以使用git命令。 2. 打开一个命令行或终端窗口,并进入保存有本地代码的项目目录。 3. 使用以下命令将本地代码初始化为一个Git仓库: ``` git init ``` 这将在项目目录创建一个名为“.git”的隐藏文件夹,作为Git仓库的核心。 4. 确保已经将本地代码保存在正确的分支。如果需要切换分支,可以使用以下命令: ``` git checkout 分支名 ``` 其分支名”是要切换到的分支的名称。 5. 将本地代码的更改添加到暂存区,可以使用以下命令: ``` git add . ``` 这将将所有更改的文件添加到暂存区。如果只想添加某个特定文件的更改,可以将“.”替换为文件名。 6. 接下来,使用以下命令将更改的文件提交到Git仓库的指定分支: ``` git commit -m "提交消息" ``` 其“提交消息”是对本次提交的简短描述或注释。请根据实际情况自行填写。 7. 最后,使用以下命令将本地分支的更改推送到Git仓库的指定分支: ``` git push origin 本地分支名:远程分支名 ``` 其“本地分支名”是要推送的本地分支的名称,“远程分支名”是Git仓库要推送到的指定分支的名称。 以上就是将本地代码提交到Git仓库的某个指定分支的基本步骤。请根据实际情况使用适当命令,并根据需要进行其他操作,如克隆分支合并。 ### 回答3: 要将本地代码提交到Git仓库的某个指定分支,可以按照以下步骤操作: 1. 首先,在本地项目的根目录下打开终端或命令提示符。 2. 使用git init命令将该目录初始化为Git仓库,即在项目根目录生成隐藏的.git文件夹。 3. 使用git add命令将要提交的文件添加到暂存区,可以添加单个文件,也可以使用通配符添加多个文件。 4. 使用git commit命令将暂存区的文件提交到本地仓库。可以使用-m选项添加提交说明,例如git commit -m "提交说明"。 5. 如果本地仓库没有远程仓库的链接,可以使用git remote add命令添加远程仓库的链接。例如git remote add origin <仓库链接>,其origin是远程仓库的别名。 6. 使用git push命令将本地仓库的代码推送到指定分支。命令格式为git push <远程仓库别名> <本地分支名>:<远程分支名>,例如git push origin master:feature-branch。 以上步骤执行完成后,本地代码就会被提交到指定分支,并同步到Git仓库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值