我有一个提交哈希abcx
,我给它一个标签100
.现在我想将文件签出example.pl
到该标签100
.在git中有可能吗?
我能做到git checkout abcs example.pl
,但我直接想要abcx
.
有人可以帮我这个吗?
cer*_*wny 14
由于标签在Git中的工作方式,它们基本上只是只读分支,您可以将其视为Git中的任何分支.你可以解决它们tags/<tag>
.
要使用标记检查存储库的整个状态到工作目录,请编写:
git checkout tags/<yourtag>
Run Code Online (Sandbox Code Playgroud)
但是,与普通分支的情况一样,您可以通过列出它们来将结账范围缩小到单个文件:
git checkout tags/<yourtag> <file1> <file2> ...
Run Code Online (Sandbox Code Playgroud)
您在日志中看到的行为是因为Git有两种指向存储库的方法.使用以下命令检出整个存储库时,您的本地存储库指针是否正在更改:
git checkout <tag/hash>
Run Code Online (Sandbox Code Playgroud)
当您通过以下方式检查特定状态时,文件或个别文件的状态会发生变化:
git checkout <tag/hash> filelist
Run Code Online (Sandbox Code Playgroud)
即使您将所有文件签出到以前的存储库状态:
git checkout <tag/hash> *
Run Code Online (Sandbox Code Playgroud)
你的本地存储库指针不会改变.git日志使用本地存储库指针记录文件上的更改,以便它知道在您检入文件的状态之前发生的"未来"更改.所以从git perspective命令:
git checkout <tag/hash/branch> file
Run Code Online (Sandbox Code Playgroud)
不会影响存储库指针,它只是更改文件的状态以匹配特定的时间点,如果您将运行git状态,您将看到这些文件作为本地更改,它没有任何不同于采取来自存储库中文件状态的复制粘贴.
归档时间: |
|
查看次数: |
9802 次 |
最近记录: |