gpt4 book ai didi

git - 了解 git 和 checkout

转载 作者:行者123 更新时间:2023-12-04 18:46:21 24 4
gpt4 key购买 nike

当我想安装一个库时,我试图了解 git 是如何工作的。假设我有一个名为 foo 的库,它有两个版本:foo-1.0foo-2.0 .所以,我运行 git clone git://github.com/dartsim/dart.git ,它会下载所有源文件。然后,我决定要安装版本 foo-1.0 .所以,我运行 git checkout release-1.0 .然后,我使用 mkdir build 创建一个构建目录, 输入 cd build ,然后使用 cmake ../src 构建和安装库和 make install .

好的,所以在 build文件夹中,有一个名为 libfoo.so.1 的库.在检查了我的 /usr/local/lib目录,还有一份libfoo.so.1安装后。我还看到了头文件foo.h已复制到 /usr/local/include .

现在,假设我还想安装 foo-2.0在同一系统上,无需卸载 foo-1.0 .例如,我可能使用 git 进行了更新,这需要我重新编译并重新安装最新版本。

安装的库和头文件会发生什么?我想会有一个 foo-2.0创建于 build目录,该目录也将被复制到 /usr/local/lib .但是,头文件呢?版本 1 和 2 不同,但源文件中只有一份副本。将运行checkout release-2.0 , cmake ../srcmake install只需覆盖 usr/local/include 处的头文件与版本 2 的头文件?在这种情况下,如何在同一系统上使用两个版本的库?

我只是一般有点不清楚checkout工作原理以及它在安装方面的实际含义.....任何帮助解决这个问题都会很棒,谢谢!

最佳答案

git checkout 给你一个特定的分支。您可以在 2 个分支上拥有 2 个不同的版本。您的构建系统需要克隆一个特定的分支,您可以使用此命令执行此操作

git clone -b <branch name> <remote_repo>

你永远不会在同一个地方有两个版本的相同代码,这基本上没有意义。

当您运行 checkout 命令时,它将切换到该特定分支中的代码版本。

这里有一个注释。 checkout 命令不会删除您 checkout 的最后一个分支中不存在的文件夹,因此您最终可能会得到额外的文件夹。

通常,您不需要在构建过程中运行 git checkout。只需克隆您想要的任何分支。

关于git - 了解 git 和 checkout ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37621632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com