在使用 Git 进行团队协作开发时,合并冲突几乎是不可避免的。特别是当你在解决冲突后,准备提交更改时,遇到 Husky 的校验阻止了你的提交,这种情况可能会让人感到困惑和沮丧。今天,我将分享一个详细的指南,帮助你在解决冲突后正确提交更改,同时绕过 Husky 的校验问题。

问题描述

假设你正在进行一个 Git 合并操作,结果出现了冲突。你手动解决了这些冲突,并准备提交更改。然而,当你运行 git commit 时,Husky 的预提交钩子(pre-commit hook)阻止了你的提交。这是因为 Husky 在提交之前会执行一些校验,比如代码格式检查、单元测试等。如果这些校验未通过,你的提交就会被阻止。

更棘手的是,如果你直接运行 git add . 来添加所有变更文件,Git 会将所有文件的变更记录都归到你的名下,这可能不是你想要的结果。那么,如何在解决冲突后正确提交更改,并绕过 Husky 的校验呢?

解决方案

下面是一个详细的步骤指南,帮助你解决这个问题:

  1. 解决冲突
    首先,在你的代码编辑器中手动解决冲突文件中的冲突部分。确保每个冲突都被妥善处理。

  2. 标记解决冲突的文件
    使用 git add <filename> 来标记你已经解决冲突的文件。这一步不会影响你的提交历史,只是告诉 Git 这些冲突已经解决了。

    git add <filename>
    
  3. 继续合并过程
    接下来,你需要完成合并过程。你可以使用 git merge --continuegit commit 来完成合并。

    git merge --continue
    

    或者:

    git commit
    
  4. 绕过 Husky 的校验
    如果 Husky 的钩子阻止了你的提交,你可以使用 --no-verify 标志来绕过这些钩子。这是一个非常有用的选项,特别是在你确信你的更改是正确的情况下。

    git commit --no-verify
    
  5. 提交记录变更
    最后,如果你担心所有文件的变更记录都变成你的提交,你可以在解决冲突后使用 git commit --no-verify 提交解决冲突的更改,然后再进行其他的提交操作。

完整步骤总结

  1. 手动解决冲突。
  2. 使用 git add <filename> 标记解决冲突的文件。
  3. 使用 git commit --no-verify 来提交解决冲突的更改。

通过这几个简单的步骤,你可以确保在解决冲突后正确提交文件,同时绕过 Husky 的校验。这不仅可以让你的工作流程更加顺畅,还能确保你的代码库保持干净和有序。

希望这个指南对你有所帮助!如果你有任何问题或建议,欢迎在评论区留言讨论。Happy coding!