在Git中以最简单的方式检查早期标记是否为只读目的

Ben*_*tto 4 tags git clone git-checkout

我的本地计算机上有一个工作树,还有一个远程存储库.假设我想在一个已知标签上快速构建我的项目的早期版本,而不会干扰工作版本的当前状态.我倾向于检查一棵单独的树,这似乎与这个问题相似:

使用Git下载特定标签

使用远程存储库中的克隆,然后在那里进行结帐.但克隆做了很多工作,并拉低了所有的修订状态.有没有轻量级的说法"在这个提交/标签中抓住我当前的世界状态并将其喷入此目录?" (不需要进一步的修订控制 - 就Git而言,它是"只读".)

也许不 - 只是检查.

谢谢.

Cas*_*bel 5

如果它都是本地的,你可以这样做:

mkdir /path/to/test-tree
cd /path/to/repo
git read-tree <tag>
git checkout-index -a --prefix=/path/to/test-tree/  # don't forget the last slash

# read-tree copies content into the index
# to restore it:
git read-tree HEAD
Run Code Online (Sandbox Code Playgroud)

这假设您根本不关心具有任何git信息的其他树.如果你想要它,你可以使用git-new-workdir脚本,它基本上创建一个克隆,除了.git用符号链接将目录填充回原始仓库,这样它就不需要额外的磁盘空间.这是一个很好的方法 - 没有额外的磁盘空间,你可以使用一个repo进行开发,一个用于测试等.