4

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

使用 Git 下载特定标签

使用来自远程存储库的克隆,然后在那里进行结帐。但是克隆做了很多工作并拉下了所有的修订状态。有没有什么轻量级的说法“在这个提交/标签中获取世界的当前状态并将其喷射到这个目录中?” (不需要进一步的修订控制——就 Git 而言,它是“只读的”。)

也许不是——只是检查。

谢谢。

4

3 回答 3

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

那是假设您根本不关心另一棵树是否有任何 git 信息。如果你愿意,你可以使用git-new-workdir 脚本,它基本上创建一个克隆,除了.git用符号链接填充目录返回到原始存储库,这样它就不会占用额外的磁盘空间。这是一个很好的方法 - 没有额外的磁盘空间,您可以使用一个 repo 进行开发,一个用于测试等。

于 2010-10-21T23:00:39.993 回答
1

尝试

git checkout -b new_branch [previous_tag]
于 2010-10-21T22:46:41.533 回答
0

听起来你在寻找 git-export:做一个“git export”(比如“svn export”)?

于 2010-10-21T22:45:56.153 回答