![]() |
1
64
sha只是版本的一种表示(尽管是规范的)。这个
例如,当我跑步时
这说明了两件重要的事情:
比如说,你把
现在您可以看到您落后了多少(4次提交)。 和 您可以确切地看到哪4个提交:
|
|
2
51
现在已经有了对$id:$的Git支持。为文件启用它 自述文件 将“readme ident”放入 GITS属性 . 支持文件名上的通配符。见 man gitattributes 详情。 |
![]() |
3
31
这不是OP不合理的要求。 我的用例是:
我使用三台独立的机器,上面有相同的Git存储库。很高兴知道我目前所拥有的文件的“版本”
对于那些消极的人,记住还有其他的用例。不是所有人都使用Git进行协作工作,而Git存储库中的文件是他们的“最终”位置。 无论如何,我这样做的方法是在存储库中创建一个这样的属性文件:
然后把$id$放在文件的某个地方(我喜欢放在shebang之后)。 提交。注意,这不会像我预期的那样自动进行扩展。例如,您必须重新合并文件,
然后您将看到扩展,例如:
有一些好消息 How do I enable the ident string for a Git repository? . |
![]() |
4
23
不确定这会是吉特。到 quote Linus :
不过,检查日志非常容易——如果您在跟踪foo.el的稳定分支,您可以看到稳定分支日志中有哪些新提交,而这些新提交不在本地副本中。如果要模拟cvs的内部版本号,可以比较上一次提交的时间戳。 编辑:当然,您应该为此编写或使用其他人的脚本,而不是手动执行。 |
![]() |
5
20
正如我所写 before :
|
![]() |
6
9
我也有同样的问题。我需要一个比哈希字符串更简单的版本,并且不需要连接到存储库就可以供使用该工具的人使用。 我用一个git预提交钩子完成了这项工作,并修改了我的脚本,使其能够自动更新自己。 我根据已完成的提交数建立版本。这是一个轻微的竞争条件,因为两个人可以同时提交,并且都认为他们提交的是相同的版本号,但是我们在这个项目上没有很多开发人员。 我的是Ruby,但它不是非常复杂的代码。Ruby脚本有:
然后我有一个命令行选项(-updateVersion),它调用工具的updateVersion。
最后,我转到git head并在
该脚本只需更改为git目录的头部,并使用
每次我签入时,myversion变量都会根据提交的数量进行更新。 |
![]() |
7
8
如果有$keywords$对你来说是必不可少的,那么也许你可以尝试看看 Mercurial 相反?它有一个hgkeyword扩展来实现您想要的。无论如何,Mercurial作为一个dvc很有趣。 |
![]() |
8
8
使用Git存储库所做的事情是使用
查看标签很容易。例如,如果有一个标记
因为它是一个顶级对象,所以您将看到提交的整个历史记录,以及运行diff、进行更改和合并的能力。 不仅如此,标记仍然存在,即使它所在的分支已被删除,但没有合并回主线。 |
![]() |
9
4
如果你只是想让人们知道他们离现在有多远,Git可以用几个相当简单的方法通知他们。例如,它们比较主干和主干上最后一次提交的日期。他们可以使用
如果这就是你想要的全部,我会寻找一种不带版本号的方法来提供它。 另外,除非你确定他们想要,否则我不会费心向任何人表达礼貌。:) |
![]() |
10
3
如果我理解正确,本质上,您希望知道自上次更新以来,给定文件上发生了多少提交。
首先获取远程源站中的更改,但不要将它们合并到
然后获取在给定文件上发生的更改的日志,
这将提供自上次合并以来在远程存储库中发生的所有提交的日志消息。
如果您只想计算更改的数量,请将其传送到
|
![]() |
11
3
对于单个文件项目来说,rcs id是很好的,但是对于任何其他项目,$id$都没有提到该项目(除非您强制对一个虚拟版本文件执行虚拟签入)。 仍然有人可能对如何在每个文件级别或提交级别上获取$author$、$date$、$revision$、$rcsfile$等等价项感兴趣(如何将它们放在某些关键字所在的位置是另一个问题)。我没有关于这些问题的答案,但是看到了更新这些问题的需求,特别是当文件(现在在Git中)来自与rcs兼容的系统(cvs)时。 如果源是与任何Git存储库分开分发的(这也是我要做的),那么这些关键字可能很有趣。我的解决方案如下:
每个项目都有自己的目录,在项目根目录中,我有一个名为
在为下一个版本工作时,脚本将提取
我在不同的分支中开发新特性,我首先要做的是添加
|
![]() |
12
1
我同意那些认为令牌替换属于构建工具而不是版本控制工具的人。 您应该有一些自动化的发布工具来设置发布被标记时源代码中的版本ID。 |
![]() |
13
0
既然你使用emacs,你可能会很幸运的:) 我是偶然碰到这个问题的,也是偶然碰到的。 Lively 几天前,一个Emacs包允许在您的文档中有活跃的EmacsLisp片段。我没试过说实话,但读到这篇文章时,我想到了。 |
![]() |
14
0
我也来自SCC、RCS和CVS(
我也遇到过类似的挑战。我想知道运行代码的任何系统上的代码版本。系统可能连接到任何网络,也可能不连接到任何网络。系统可能安装了Git,也可能没有安装Git。系统上可能安装了GitHub存储库,也可能没有安装。 对于几种类型的代码(.sh,.go,.yml,.xml等),我需要相同的解决方案。我希望任何不了解Git或Github的人都能回答这个问题。 “您运行的是哪个版本?” 所以,我写了一些关于git命令的包装器。我用它来标记一个带有版本号和一些信息的文件。它解决了我的挑战。这可能对你有帮助。 https://github.com/BradleyA/markit
|
![]() |
15
0
要将扩展应用于存储库中所有子目录中的所有文件,请添加
要看到这个效果,您需要首先对文件进行有效的签出,例如以任何方式删除或编辑它们。然后用以下方法恢复它们:
你应该看到
从
每次提交新版本的文件时,此ID都将更改。 |