Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
理解git:克隆和签出的区别_Git_Github_Version Control - Fatal编程技术网

理解git:克隆和签出的区别

理解git:克隆和签出的区别,git,github,version-control,Git,Github,Version Control,我对git clone和git checkout之间的区别感到有点困惑。例如,我试图下载、编译和安装一个C++代码库,名为 DART。说明中说要运行以下操作: 1. Clone the repository into a directory in your home folder: git clone git://github.com/dartsim/dart.git 2. Change directory to the DART repository and change branch t

我对
git clone
git checkout
之间的区别感到有点困惑。例如,我试图下载、编译和安装一个C++代码库,名为 DART。说明中说要运行以下操作:

1. Clone the repository into a directory in your home folder:

git clone git://github.com/dartsim/dart.git

2. Change directory to the DART repository and change branch to release-6.0:

cd dart
git checkout release-6.0

3. Create a build directory:

mkdir build
cd build

4. Configure and build dart:

cmake ..
make -j4
那么我认为
clone
实际下载源文件对吗?而
签出
只是选择我想要实际使用和安装的代码版本

但如果我还想安装版本
release-5.0
build
目录中的编译库不包含版本5.0和6.0的混合版本吗

当我运行
clone
时,它是否下载了5.0版的所有文件,以及6.0版的所有文件?如果我只想安装6.0,这不是很低效吗

谢谢

那么我认为clone实际上下载源文件是对的吗

签出只是选择我想要实际使用和安装的代码版本

和你一起工作,是的。它会更新文件系统,以反映在您签出提交/分支时存储库所处的状态

但如果我也想安装5.0版呢?构建目录中的编译库不包含5.0版和6.0版的混合版本吗

否,如果签出5.0,您的文件系统将更新以反映5.0分支的状态。同样适用于6.0和任何其他版本

如果git忽略了构建/文件夹(很可能是),那么是的

当我运行clone时,它是否下载了5.0版的所有文件,以及6.0版的所有文件

基本上,它所做的是下载当前的文件,以及它们的历史记录。因此,每个文件都有一个,git知道存储库历史中每个文件都发生了什么。当您签出不同的提交/分支时,git会将文件更新为提交时的状态,并使用历史记录来完成此操作

如果您是这样要求的,那么您没有同一文件的多个副本

如果我只想安装6.0,这不是很低效吗

可能是。很可能6.0分支是从5.0分支分支出来的,取决于它的提交

那么我认为clone实际上下载源文件是对的吗

签出只是选择我想要实际使用和安装的代码版本

和你一起工作,是的。它会更新文件系统,以反映在您签出提交/分支时存储库所处的状态

但如果我也想安装5.0版呢?构建目录中的编译库不包含5.0版和6.0版的混合版本吗

否,如果签出5.0,您的文件系统将更新以反映5.0分支的状态。同样适用于6.0和任何其他版本

如果git忽略了构建/文件夹(很可能是),那么是的

当我运行clone时,它是否下载了5.0版的所有文件,以及6.0版的所有文件

基本上,它所做的是下载当前的文件,以及它们的历史记录。因此,每个文件都有一个,git知道存储库历史中每个文件都发生了什么。当您签出不同的提交/分支时,git会将文件更新为提交时的状态,并使用历史记录来完成此操作

如果您是这样要求的,那么您没有同一文件的多个副本

如果我只想安装6.0,这不是很低效吗


可能是。很可能6.0分支是5.0分支的分支,取决于它的提交。

在github上,您也可以选择一个特定分支,直接从repo页面下载这些文件。在github上,您也可以选择一个特定的分支,直接从repo页面下载这些文件。和