我有一个开源静态JavaScript+HTML应用程序,现在大约部署在三个不同的地方,一个在我的本地机器上,一个在内部服务器上,一个在稳定的外部服务器上。我希望能够立即知道哪个版本部署在哪个位置,并且我希望错误报告者能够轻松访问他们报告错误的版本。理想情况下,作为提交过程的一部分,我希望使用提交的哈希写入文件。当然,据我对Git的了解,这是不可能的,因为将计算出的哈希值作为文件的一部分包含在提交中会更改该提交的计算出的哈希值。另一方面,我可以将其构建作为构建过程的一部分。不过我目前没有构建过程,如果可能的话我想避免添加一个步骤。最干净的方法是什么? 最佳答案
所以git钩子(Hook)只会将更改Id放入提交中。尽管可以将merge提交推送到审查分支,但即使Gerrit被配置为需要提交消息中的Change-Id。当merge提交被推送时,所有后续提交都将取决于merge提交——因为没有更改ID。那么不将更改Id包含到merge提交中的目的是什么? 最佳答案 Git中的潜在问题是commit-msg钩子(Hook)不会被调用用于没有冲突的merge提交。但是,prepare-commit-msg会为(任何)merge提交调用。因此,我目前为使Gerrit的Change-Id也添加到没有冲突的
所以git钩子(Hook)只会将更改Id放入提交中。尽管可以将merge提交推送到审查分支,但即使Gerrit被配置为需要提交消息中的Change-Id。当merge提交被推送时,所有后续提交都将取决于merge提交——因为没有更改ID。那么不将更改Id包含到merge提交中的目的是什么? 最佳答案 Git中的潜在问题是commit-msg钩子(Hook)不会被调用用于没有冲突的merge提交。但是,prepare-commit-msg会为(任何)merge提交调用。因此,我目前为使Gerrit的Change-Id也添加到没有冲突的
Git有没有等同于Mercurial的“hgid”的命令?IE。如果工作目录中有更改,则打印父提交的哈希和加号的命令? 最佳答案 这个命令等同于hgid--id:gitdescribe--abbrev=12--always--dirty=+ 关于Git相当于"hgid"?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/14333388/
Git有没有等同于Mercurial的“hgid”的命令?IE。如果工作目录中有更改,则打印父提交的哈希和加号的命令? 最佳答案 这个命令等同于hgid--id:gitdescribe--abbrev=12--always--dirty=+ 关于Git相当于"hgid"?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/14333388/
我正在git的一个分支上工作。当我做的时候gitcheckout(从gitlog获得的提交ID),它正在致力于该特定更改,但分支已更改为.为什么会这样?你如何解决这个问题? 最佳答案 如果你直接checkout一个commitsha,它会让你进入一个“detachedhead”状态,这基本上意味着你的工作副本已经checkout的当前sha,没有Twig指向它。如果您还没有做出任何提交,您可以通过在checkout提交sha之前简单地checkout您所在的分支来离开分离的头部状态:gitcheckout如果您在处于分离头状态时确实
我正在git的一个分支上工作。当我做的时候gitcheckout(从gitlog获得的提交ID),它正在致力于该特定更改,但分支已更改为.为什么会这样?你如何解决这个问题? 最佳答案 如果你直接checkout一个commitsha,它会让你进入一个“detachedhead”状态,这基本上意味着你的工作副本已经checkout的当前sha,没有Twig指向它。如果您还没有做出任何提交,您可以通过在checkout提交sha之前简单地checkout您所在的分支来离开分离的头部状态:gitcheckout如果您在处于分离头状态时确实
使用gitstashlist显示带有ID的存储列表。使用gitstashlist--date=local或gitstashlist--date=relative给我他们的时间,但我不知道他们对应的ID是什么。我想在某个时间获得一个藏品。 最佳答案 gitstashlist只需使用一组特定的选项运行gitlog:list_stash(){have_stash||return0gitlog--format="%gd:%gs"-g--first-parent-m"$@"$ref_stash--}$@部分插入您指定的任何附加选项(默认情况下
使用gitstashlist显示带有ID的存储列表。使用gitstashlist--date=local或gitstashlist--date=relative给我他们的时间,但我不知道他们对应的ID是什么。我想在某个时间获得一个藏品。 最佳答案 gitstashlist只需使用一组特定的选项运行gitlog:list_stash(){have_stash||return0gitlog--format="%gd:%gs"-g--first-parent-m"$@"$ref_stash--}$@部分插入您指定的任何附加选项(默认情况下
git-describe的典型输出看起来像some-tag-32-gf31f980其中some-tag是一个标签名,32表示描述的提交是在带有该标签的提交之后的32次提交,而gf31f980表示提交ID唯一缩写为f31f980。我的问题是关于gf31f980中的g。为什么它在那里?我的第一个想法是插入它是为了消除git-describe输出的解析歧义。但我想不出任何情况下它实际上有助于拥有它。例如,32组件可能会被省略,并且无法知道上面的输出描述的是标记some-tag之后的提交32次提交,而不是提交在标签some-tag-32。但是g对此没有帮助。仅提取提交ID的正则表达式匹配可以搜