我经常看到大量的提交,但没有引用票据的注释......所以我最终回去并手动查看差异.不一定很糟糕,但有笔记会很好.有任何想法吗?
什么是提交消息?我一直在写它们作为对我所做的事情的解释,但我最近与一位同事写了一个讨论它的原因进行了讨论.哪一个是正确的,还是完全有另一个答案?
注意:我完全不知道是否有一个"正确"的答案.因此,我将其标记为社区维基,并且不会接受答案.Upvotes将决定胜利者:)
OS Name: Microsoft Windows 10 Pro
OS Version: 10.0.17134 N/A Build 17134
...
System Type: x64-based PC
Processor(s): 1 Processor(s) Installed.
[01]: Intel64 Family 6 Model 158 Stepping 10 GenuineIntel ~3696 Mhz
BIOS Version: American Megatrends Inc. 2.20, 10/27/2017
Run Code Online (Sandbox Code Playgroud)
OS: Debian
Kernel: x86_64 Linux 4.4.0-17134-Microsoft
Shell: zsh 5.3.1
CPU: Intel Core i7-8700K CPU @ 3.696GHz
RAM: 8041MiB / 16344MiB
Run Code Online (Sandbox Code Playgroud)
我的~/.gitconfig:
[core]
editor = code --wait
Run Code Online (Sandbox Code Playgroud)
当我运行时git commit,vscode 以 开头C:\mnt\$PathToRepo$\.git\COMMIT_EDITMSG …
git commit-message visual-studio-code windows-subsystem-for-linux
我正在使用 VS Code 来编写提交消息。当我输入git commit -aVS Code 时,它会启动以下文本:
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch assi
# Changes to be committed:
# modified: Default_Navigation.cs
#
Run Code Online (Sandbox Code Playgroud)
这个模板可以改吗?
是否可以仅在提交消息中出现某个字符串时触发Hudson/Jenkins构建?
例如,我想触发一个构建,通过编写如下提交消息将我的应用程序推广到开发环境:
MYPROJECT-123修复了MyClass.java中的NPE #deploy:DEV
在关于Continuos部署的精彩演讲中描述了一般的想法,但我找不到有关如何在Hudson中执行此操作的任何信息.
我更喜欢在Hudson本身中使用此行为,而不是在诸如commit-hooks或web-hooks之类的外部系统中.
continuous-integration commit-message hudson build continuous-deployment
我需要在提交消息之前添加“ticket:N”,其中 N 是我正在处理的票证的编号。但我总是忘记前缀,并且只在 5-6 次提交后才记住它,所以--amend没有帮助。是否可以设置一些警告,这样每次我忘记添加前缀时 git 都会警告我?
我刚刚推送了一个提交,然后意识到我需要更改提交消息。
所以在我的本地仓库中,我做了:
git commit --amend -m "New commit message"
Run Code Online (Sandbox Code Playgroud)
但是当我尝试推送这个时,我收到了大量错误消息说
Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') and try again
Run Code Online (Sandbox Code Playgroud)
这是修改我的信息的错误方式吗?最后,我不得不重置我所有的 repos,然后用一条新消息再次提交。
所以我的问题是,修改已推送内容的提交消息的正确方法是什么?
风格指南“如何编写 Git 提交消息”第5 节。在主题行中使用命令语气指出 git 本身使用命令语气:
祈使句听起来有点粗鲁。这就是为什么我们不经常使用它。但它非常适合 git commit 主题行。原因之一是 git 本身在代表您创建提交时使用命令式。
例如,使用 git merge 时创建的默认消息如下:
Merge branch 'myfeature'当使用 git revert 时:
Revert "Add the thing with the stuff"
This reverts commit cc87791524aedd593cff5a74532befe7ab69ce9d.或者,当单击 GitHub 拉取请求上的“合并”按钮时:
Merge pull request #123 from someuser/somebranch
然而,在 bitbucket 上的 git 存储库上,我遇到了指示性的情绪:
合并到 feature/123(拉取请求 #1234)
这是由 bitbucket 而不是 git 创建的消息吗?
我刚刚意识到我更喜欢直接将 TODO 注释写入最新的提交而不是问题跟踪器,例如:
TODO:
- Remove console.log
- Check that XY works
- ...
Run Code Online (Sandbox Code Playgroud)
例如,如果我必须切换到另一项工作,完成它并返回到这个分支,我可以看到我还没有完成什么,修复它,commit --amend从提交消息中删除 TODO 语句。
这是一个好习惯还是我应该强迫自己使用问题跟踪器并在那里写下每一个小注释(即使其他人可以看到该问题)?
我经常听说提交消息应该描述我进行这些更改的原因。我想我同意这一点。然而,我也经常听说内联注释(即源代码中的注释)应该说明代码为什么以这种特定方式工作,而不是它的作用。
那么,什么时候应该将推理放入提交消息中,什么时候应该将其写在内联注释中呢?是否有一些可以应用的经验法则或最佳实践?
commit-message ×10
git ×7
commit ×3
bitbucket ×1
build ×1
comments ×1
editor ×1
git-amend ×1
git-commit ×1
hudson ×1
push ×1
svn ×1
todo ×1
tortoisesvn ×1