【问题标题】:git default commit message include files reset in pre-commit hookgit 默认提交消息包括在预提交挂钩中重置的文件
【发布时间】:2016-07-16 11:24:14
【问题描述】:

在我的工作流程中,我想对文件进行一些更改并将它们保存在我的本地计算机中。为此,我编写了一个 pre-commit 钩子来在任何提交之前重置这些文件。

问题在于默认消息:

# Changes to be committed:
#   FileToBeCommited1
#   FileToBeCommited1
#   FileAlreadyResetByPre-comitHook

有一个将被提交的文件列表。由于某种原因,它总是包含我已经在我的钩子中重置的文件的名称。 它不是一个真正的大问题,但如果可能的话,我希望它能够得到解决。另外我不想写prepare-commit-msg钩子自己写完整的消息。

【问题讨论】:

    标签: git pre-commit-hook commit-message


    【解决方案1】:

    另一种方法是使用git update-index 对那些文件使用ignore local changes

    git update-index --skip-worktree -- file1
    git update-index --skip-worktree -- file2
    git update-index --skip-worktree -- file3
    

    这样,无需重新设置这些钩子。
    并且提交消息保持干净。

    【讨论】:

    • 谢谢,但我不是在寻找替代方法,因为此方法有其自身的缺点,例如无声地变基或合并覆盖。在 pre-hook 方法中,我必须有意识地进行并重新应用......我更喜欢这种方法
    • @Suryavanshi 据我所知,那些跳过的文件不会被静默覆盖(​​如stackoverflow.com/q/27027732/6309
    • 根据我的个人经验,它们确实在 git pull --rebase 期间被覆盖
    • @Suryavanshi 你用的是什么 git 版本?
    • @Suryavanshi 你能用 git 2.7.4 或 git 2.8 测试它吗?
    猜你喜欢
    • 2010-12-23
    • 2016-04-02
    • 2015-12-31
    • 1970-01-01
    • 2016-04-26
    • 2020-09-11
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    相关资源
    最近更新 更多