在git中标记特定文件

时间:2017-02-22 05:23:43

标签: git tortoisegit

我是新git,我想从分支标记特定文件。 示例:我有 我的初始版本中file1file2file3file4并将这4个文件标记为master

现在我已在下一版本中添加V1.0并合并到file5 我必须仅在新标记中将master标记为file5而不是所有以前的文件(V2.0file1file2file3)。
这可以在git中完成吗?

任何人都可以帮助我在git或任何其他解决方案中执行此操作,我可以更新我的项目的每个版本吗?

1 个答案:

答案 0 :(得分:2)

  

这可以在git中完成吗?

不,考虑一个标签代表(通常见下文)一个提交(它是对所有 repo内容的引用,而不是对文件或delta的引用)

http://rypress.com/tutorials/git/media/12-4.png
图片来自Git Plumbing

但你可以list the files which have changed between two tags

git diff --name-only v1.0 v2.0

要仅列出文件,请添加--diff-filter=A

git diff --name-only --diff-filter=A v1.0 v2.0

这将返回“f5”。

如“How to Tag a single file in 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

但是任何非提交标记都不会被用作常规提交标记(例如,您可以将其签出)。
这些非提交标记的可能用法:“Why git tag a blob or a tree (or a tag)?”。