如何git克隆特定版本?

vde*_*nne 15 git github

就这样,我完成了我的应用程序的第一个版本.

我承诺了第一个版本的最终状态

git commit -m "some final tweaks"
Run Code Online (Sandbox Code Playgroud)

并创建了版本标记

git tag v1.0.0
Run Code Online (Sandbox Code Playgroud)

push远程的一切.

现在我正在开始开发应用程序的第二个版本,并且已经考虑了一些改进.

以后,当我进行这些改进并commit创建一个新的tag(v2.0.0)时,是否有可能git克隆提供标记的git的特定状态?

如果最新版本是v2.0.0,我还可以克隆版本1.0.x吗?

类似git clone git@github.com:mygitname/theproject.git#1.0.2的实例?

jor*_*anm 35

您可以使用--branch标志执行此操作,该标志也将接受标记.

$ git clone  git@github.com:mygitname/theproject.git --branch 1.0.2
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,您只需要按照Exprator的答案中所述签出标签.

  • 这样效果更好:`$ git clone git@github.com:mygitname/theproject.git --branch v1.0.2` (2认同)

Mar*_*ger 11

使用git,您通常不会克隆特定版本; 你clone整个回购 - 制作每个版本的本地副本 - 然后checkout是特定版本.

默认情况下,克隆时会master检出特定版本(通常).您可以使用该-b选项更改检出的版本(或者,当然,您可以在克隆完成后查看所需的版本).

但有些情况下,这并不是实用的建议,例如,如果您正在使用npm从git中获取内容(因此您不直接发出clone命令).在这种情况下npm,您可以将提交标识符(分支,标记,提交SHA等)作为哈希片段添加到URL的末尾.(AFAIK 适用于npm它;它不适用于git clone您询问的方式.)

为了完整起见,如果你真的想克隆一个特定版本(只将该版本从远程复制到本地机器),你可以做类似的事情

git clone --depth 1 -b branch_name
Run Code Online (Sandbox Code Playgroud)

(branch_name分支或标签的名称).