git - 如何在 GIT 中标记单个文件

标签 git version-control git-svn

我是 git 的新手。我目前正试图通过使用它来跟踪我正在维护的一些 excel 文件中的更改来熟悉它,以跟踪我参与的一些连续事件。所有文件都在一个存储库中。我想用它们的版本分别标记每个文件。这可能吗?到目前为止,我发现的是标记整个存储库的功能。如果我尝试做的事情是错误的,请给我建议最佳做法。

提前致谢。

编辑

当我这样做时,我故意删除了一个以前的标签,使整个存储库被标记为 v1.0(因为我没有找到标记单个文件的方法)。由于我现在想用文件名重置标签的名称并且对事情应该发生的方式很满意,我该如何回滚删除并重命名以前的标签(已删除的标签)?

最佳答案

从技术上讲,您可以在没有文件名的情况下标记单个文件的内容。但此类标签的用途有限。标签应该指向提交,非提交的特殊标签具有非常不同的行为(你不能 git checkout 这样的特殊标签)。所以我强烈建议永远不要使用非提交标签。

当你只想标记一些文件时,最好为它们使用一个单独的 repo,或者至少使用不同的分支,因为 git 总是查看完整的树来进行操作。

如果您仍然坚持要创建这样一个特殊的标签,您可以:

> git ls-tree HEAD
040000 tree 2c186ad49fa24695512df5e41cb5e6f2d33c119b    bar
100644 blob 409940768f2a684935a7d15a29f96e82c487f439    foo.txt

> git tag my-bar-tree 2c186ad49fa24695512df5e41cb5e6f2d33c119b
> git tag my-foo-file 409940768f2a684935a7d15a29f96e82c487f439

关于git - 如何在 GIT 中标记单个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5959622/

相关文章:

git-svn:迁移具有不同层级分支的 SVN 存储库

git - 在企业环境中使用 x509 证书签署 git commit

git - 使用 BeyondCompare 查看 GIT 中文件之间的差异

visual-studio-2010 - 忘记将我的代码搁置在 TFS 中。我现在有什么选择?

ruby - 如何在 @INC for Perl 中包含其他文件夹? (对于 svn2git,在 @INC` 中是 : `Can' t locate Git. pm)

git - 如何永久防止文件的特定部分在 git 中提交?

git - 无法添加到存储库

git - `git pull --rebase --autostash` 和 `git pull --ff-only` 之间的区别?

sql-server - 如何将 SQL Server 数据库对象添加到 TFS?

svn 服务器自动同步