如何在Git中执行类似于svn标记的操作?

如何在Git中执行类似于svn标记的操作?,git,version-control,dvcs,Git,Version Control,Dvcs,我的应用程序需要符合新的规范 因此,我想标记我的应用程序的现有版本。 我希望将来能够查看此版本 我提交了我所有的最新更改 我确实: git tag -a stable-pre-new-spec 当我执行: git show stable-pre-new-spec 它显示了我上次提交的差异?!我不太明白 发生了什么事 我应该改为创建分支吗?在您的情况下,我会使用分支: git checkout -b app_in_current_state 然后,您可以继续在master上开发,同时修复分支

我的应用程序需要符合新的规范

因此,我想标记我的应用程序的现有版本。 我希望将来能够查看此版本

我提交了我所有的最新更改

我确实:

git tag -a stable-pre-new-spec
当我执行:

git show stable-pre-new-spec
它显示了我上次提交的差异?!我不太明白 发生了什么事


我应该改为创建分支吗?

在您的情况下,我会使用分支:

git checkout -b app_in_current_state

然后,您可以继续在master上开发,同时修复分支中当前状态的错误。

正在进行两件事。首先,git修订是对整个文件树的修订。相比之下,我认为cvs和svn为各个文件提供了单独的修订号。因此,在cvs或svn中,“标记”操作将退出并附加到文件1版本1.0.3、文件2版本1.0.2、文件3版本2.0、文件4版本1.3.7等,然后当您想要使用该标记提取时,系统将查找带有该标记的所有片段。在git中,一个版本已经是关于整个集合的,标记只是给它起了另一个名字

第二,这适用于许多cm系统,包括cvs和svn,git给一个状态赋予了相同的名称,而不同的是。Git将这种组合称为提交。因此,您询问了该版本,它显示了该版本与前一个状态之间的差异。在git中,提交id实际上是整个保存的树内容的校验和;给你看电影是很传统的


在git中,您可以在创建提交后随时标记提交或从中创建分支。

我看不出这里有什么问题。”stable pre new spec“是给定提交的符号名称。“git show”将显示标记的内容(如果它是带注释的标记),它下面将显示“git show^{commit}”,其中包括您标记的提交的变更集。我不想只标记我的提交。我希望源树(即每个工件)的当前快照用字符串“标记”。标记指向给定提交位置的源树。这是你的快照。您可以轻松地使用“git checkout[-b]”返回到版本并进一步编辑它。git中没有“标记每个工件”,因为它没有意义:您总是处理一个完整的存储库,而不是单个文件。