使用Git对项目库进行版本控制(来自vss)

时间:2016-01-20 20:59:38

标签: git versioning libraries visual-sourcesafe

我是git的新手,因为现在我用的是vss。 我已将我的项目vss存储库转换为git存储库。 现在我对版本化项目模块有一些疑问。

假设这种情况:

MainProject.exe v.1.1.0.0

ProjectLibrary1.dll v.1.0.0.1

现在使用vss我有一个完成这些步骤的版本控制批处理:

  1. 将MainProject.exe的版本从v.1.1.0.0增加到v.1.1.0.1
  2. 将标签添加到MainProject vss文件夹“v.1.1.0.1”
  3. 如果ProjectLibrary1.dll自v.1.0.0.1以来发生了一些变化,那么:
    • 将他的版本增加到v.1.0.0.2
    • 将标签添加到ProjectLibrary1 vss文件夹“v.1.0.0.2”
  4. git标签被标签取代,标签对于存储库是唯一的,所以在上面的例子中我想完成这个步骤:

    1. 将MainProject.exe的版本从v.1.1.0.0增加到v.1.1.0.1
    2. 如果ProjectLibrary1.dll自v.1.0.0.1以来有一些更改,那么:
      • 将他的版本增加到v.1.0.0.2
    3. 添加标签“v.1.1.0.1”
    4. 如何做第2点? 如何在v.1.0.0.1之后检查git是否在ProjectLibrary1文件夹中提交了更改?

      由于

1 个答案:

答案 0 :(得分:1)

我不想更改版本号并自动创建git标签。

相反,我使用git describe功能来获取当前标记和之后所做的更改。

例如,我用标记v0.1.0标记了某个版本的库。 如果我没有进行更改(和提交),git describe将返回v0.1.0。如果我做了一些更改,git describe将返回v0.1.0-N-gGITHASH,其中N是设置标记后的提交次数,gGITHASH是当前提交的哈希值。

根据此信息,您可以创建Windows版本号0.1.0.N.并在“非正式版本”字段中放置带有哈希的版本字符串。 如果您继续引入更改而不设置新标记,则N将增长。如果设置新标签(例如,v0.2.0),则N将再次变为零。

git describe可以为您提供有关存储库中未经更改的更改的信息。