时间:2022年1月9日21:38:22

团队开发,但是每个人的日志风格不同该怎么办?

通过配置服务器的 Git 提交日志,就可以实现统一的代码提交风格。

先看实现效果,如下图

这样大家就必须按照现有的模板,填写对应内容,保持整体格式的统一。

Git 有提供一个示例文件,路径: .git/hooks/prepare-commit-msg.sample

查看文件内容,全是英文的,如下

zhaoc@ubuntu2004:~/09-GitRepository/TheCProgrammingLanguage/part-1/1-6$ cat ../../.git/hooks/prepare-commit-msg.sample
#!/bin/sh
#
# An example hook script to prepare the commit log message.
# Called by "git commit" with the name of the file that has the
# commit message, followed by the description of the commit
# message's source.  The hook's purpose is to edit the commit
# message file.  If the hook fails with a non-zero status,
# the commit is aborted.
#
# To enable this hook, rename this file to "prepare-commit-msg".# This hook includes three examples. The first one removes the
# "# Please enter the commit message..." help message.
#
# The second includes the output of "git diff --name-status -r"
# into the message, just before the "git status" output.  It is
# commented because it doesn't cope with --amend or with squashed
# commits.
#
# The third example adds a Signed-off-by line to the message, that can
# still be edited.  This is rarely a good idea.COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"# case "$COMMIT_SOURCE,$SHA1" in
#  ,|template,)
#    /usr/bin/perl -i.bak -pe '
#       print "\n" . `git diff --cached --name-status -r`
#        if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
#  *) ;;
# esac# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
# if test -z "$COMMIT_SOURCE"
# then
#   /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
# fi

文件最下边给出了两个示例,我们要用到的重点是这条语句

/usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"

接下来修改自己的配置文件,复制原有的示例文件,命名为 prepare-commit-msg ,注意不带后缀!

cp .git/hooks/prepare-commit-msg.sample .git/hooks/prepare-commit-msg

修改 prepare-commit-msg 文件,直接屏蔽原代码语句,参考如下格式:

COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3#/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"case "$2,$3" inmerge,)/usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;,|template,)/usr/bin/perl -i.bak -pe 'print "修改描述:\n影响分析:\n是否自测:\n自测内容:\n测试建议:\n代码审查:\nNOTE:\n" if /^#/ && $first++ == 0' "$1" ;;*) ;;
esac

修改完毕,先保存,再退出!

然后进行代码提交的测试即可,参考命令如下:

# 添加所有修改文件到缓存区(待提交区)
git add .# 提交代码,并填写日志;
# 这一步会显示之前编写好的日志文件
git commit# 填写完日志后,推送到服务器就可以啦
git push

好啦,我是小二,我们下期见~

Git代码提交,固定日志模板相关推荐

  1. git 代码提交过程

    一.git 代码提交过程 git log 查看git合入的记录 git pull从服务器重新拉代码,将本地代码更新为服务器上的最新代码 git status查看本地代码状态,是否有待提交的代码 git ...

  2. 可能是历史上最伟大的一次 Git 代码提交

    Git 是一个分布式版本控制系统,缔造者是大名鼎鼎的林纳斯·托瓦茲 (Linus Torvalds),Git 最初的目的是为了能更好的管理 Linux 内核源码. PS:为了能够帮助更多的 Java ...

  3. git代码提交时遇到的错误

    项目开发自测完之后进行代码提交的时候最好先备份一下本地代码,然后再进行代码的更新,然后再提交本次开发的代码 当提交到本地时发现自己的一个文件夹名称取的不对从新修改了一下文件夹,然后更新代码这个时候我创 ...

  4. 使用husky配置git代码提交规范

    1.安装husky yarn add --dev husky 2.配置husky 在 package.json 中的 script 中添加一条prepare命令: "scripts" ...

  5. Git代码提交: [remote rejected] prohibited by gerrit: ref update access denied(二十二)

    0.如果Gerrit提交使用一下命令会报错 # git push origion master ! [remote rejected] master -> master (prohibited ...

  6. Git:改变世界的一次代码提交

    摘要:如果选Linux社区历史上最伟大的一次 Git 代码提交,那一定是 Git 工具项目本身的第一次代码提交. 吾诗已成.无论大神的震怒,还是山崩地裂,都不能把它化为无形! -- 奥维德<变形 ...

  7. Linus改变世界的一次代码提交:git的诞生

    吾诗已成.无论大神的震怒,还是山崩地裂,都不能把它化为无形!-- 奥维德<变形记> Table of Contents 背景 设计 实现 启示 参考 背景 Linux 作为最大也是最成功的 ...

  8. Git—代码管理、提交及冲突解决流程的思考

    1 代码管理   Git不多说,大家都知道这是一个分布式版本控制系统,对开发者而言,可以敏捷高效的进行代码管理及开发,也非常适合多人协作.话不多说,下面就来点干货. 1.1 创建新仓库   我们在工作 ...

  9. 阿捷外传之Git代码统计:DotNetCore + PowerBI 实现Git仓库日志分析

    前言 2020年3月初春,虽然春节已经过去一个多月,大街上还未恢复往年的热闹.由于春节前夕突然降临的冠状病毒,导致很多员工无法回到城市复工.春节之后,阿捷所在的公司考虑到复工带来的风险,通知所有员工以 ...

  10. git commit 提交出错,工作区代码被回退到最开始内容

    git commit 提交出错,工作区代码被回退到最开始内容 1.环境: 我的环境是ant design pro,今天在提交代码的时候,发现了一个很诡异的现象,那就是,当我git add .后,执行g ...

最新文章

  1. 艾伟_转载:DataTable.NewRow 内存泄漏问题
  2. DeepLab v2
  3. 无性别服饰是趋势,但不该只停留在“中性”
  4. Recovery Rate违约后可回收比率
  5. 浅析负载均衡的6种算法,Ngnix的5种算法
  6. 推荐几款提升效率的神器
  7. pytorch标签onehot编码_pytorch将标签转为onehot
  8. c语言全局变量6,C语言全局变量定义方法
  9. hyperedger +fabric 区块链实践
  10. MVCC和InnoDB行锁
  11. ln多少等于2用计算机,ln2(log计算器在线)
  12. 今天520,爱他就给他个家。
  13. uniApp实现热更新
  14. mysql 默认值批量更改_mysql 批量修改默认值
  15. 黑客大会:defcon_来自深层网络的故事:地下黑客的雇用
  16. 学英语《每日一歌》之take me to your heart
  17. python笔记第二章---变量
  18. AVFoundation 二维码识别,人脸识别
  19. 51单片机毕业设计选题方向
  20. 基于vivado2019的FDMA及DDR3仿真(AXI接口)

热门文章

  1. c语言控制电机正反转程序,C语言实现控制电机加减速正反转(飞思卡尔C代码)
  2. 转贴 30岁你会站在哪?
  3. Termux:api 使用及脚本分享
  4. JAVA面向对象中继承子父类构造函数-子类的实例化过程-图解
  5. 浅谈论文查重检测过程中的常见问题
  6. AI+IoT行业“飞轮效应”凸显,全球云服务能力将发挥关键作用
  7. C语言:字符数组的输入输出
  8. 设计模式-23种设计模式
  9. RSD的遥感图像合成工具
  10. matlab直方图匹配,直方图匹配 histogram match