我想警告用户,如果他们的提交消息不遵循某组指南,然后给他们选项来编辑他们的提交消息,忽略警告或取消提交.问题是我似乎无法访问stdin.
下面是我的commit-msg文件:
function verify_info {
if [ -z "$(grep '$2:.*[a-zA-Z]' $1)" ]
then
echo >&2 $2 information should not be omitted
local_editor=`git config --get core.editor`
if [ -z "${local_editor}" ]
then
local_editor=${EDITOR}
fi
echo "Do you want to"
select CHOICE in "edit the commit message" "ignore this warning" "cancel the commit"; do
case ${CHOICE} in
i*) echo "Warning ignored"
;;
e*) ${local_editor} $1
verify_info "$1" $2
;;
*) echo "CHOICE = ${CHOICE}"
exit 1
;;
esac
done
fi
}
verify_info …Run Code Online (Sandbox Code Playgroud) 可能重复:
使用pull命令时github会锁定mac终端
我通过Mac上的终端使用git.我最近尝试执行时遇到了一个恼人的问题git pull.执行后git pull我收到以下错误消息:
Merge ssh://domain.com/repository.git
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts:
# the commit.
Run Code Online (Sandbox Code Playgroud)
问题是我不能输入任何东西.我的终端似乎卡住了,似乎没有任何我能做的事情.我对git来说相当新,所以这可能是我犯的一个简单错误.
我在这里读到,对于某些人来说,文本编辑器此时打开了.在我看来,情况肯定不是这样.它还指出我可以使用--no-edit标志在没有消息的情况下进行合并,但即便如此,这似乎也不适用于我.
我此刻有点无能为力,卡住并无法将任何更改推送到我的服务器.
使用Git,我的提交编辑是Vim.我一直在做一个很难记住包裹线的工作,所以我得到了很长的路线(例如,参见这个答案).有没有办法使用一些git config或.vimrc魔法,我可以让Vim自动包裹72列的行?
我已经阅读了各种Git教程,包括官方教程,他们似乎都告诉我以现在时态编写Git提交注释是很好的约定和做法.
这是为什么?它背后的原因是什么?
在我输入git commit -a文本编辑器后弹出,然后输入我的评论.键入注释后我必须按哪些按钮才能使其进入实际提交的下一阶段?
我在Windows上使用mysysGit并使用默认设置.
我正在使用Visual SVN Server和Tortoise SVN(客户端)进行源代码管理.我希望所有开发人员都能以一致的格式标注签入说明.
例如,我希望他们的提交消息默认为......
概要:
开发者名称:( 预先填充)
评论人:
[错误ID]:
[更改错误状态]:
已知的问题:
受影响的文件:( 预先填充)
在将来,我希望[Bug Id]和[Bug State]提供信息,以触发Bug跟踪系统的自动更新.还应使用svn用户和用户提交的文件预填充开发人员名称和受影响的文件.
请发送您可能拥有的任何链接或样本.
svn tortoisesvn commit-message visualsvn-server pre-commit-hook
假设我运行git pull并且存在git无法自动合并的冲突.
在我手动合并更改并运行之后git commit,是否应该保留Conflicts:git在提交中生成的部分(作为手动合并这些文件的记录),或者将其删除(因为冲突未提交)?
我不知道最佳做法是什么 - 是否有警告确保您修复冲突,或实际登录提交消息?
我做到了
git commit -m "Changed function name `sum` to `sum_list`"
Run Code Online (Sandbox Code Playgroud)
我使用反引号的目的是,sum当sum_list有人在 GitHub 等查看提交消息时,以等宽字体输入。它在其他上下文中的工作方式与此类似,例如在 Markdown 中。
然而这并没有起到很好的作用。Agit log显示以下提交消息:
Changed function name to
当我用谷歌搜索这个问题时,我只发现了这个关于反引号命令的问题,但是提问者和回答者都已经熟悉我想要理解的概念。
反引号在提交消息中起什么作用?有没有办法将提交消息的部分标记为等宽字体?
有没有人有我可以使用的git提交钩子,以确保在签入消息中出现JIRA问题编号?我没有从git commit hook驱动JIRA的经验,所以任何帮助都会受到赞赏 - 工作源更是如此!
确切的数字有一些变化,但一般来说,提交消息的第一行和后续行长度有推荐长度或最大长度。消息正文的常见字符数似乎最多为 72 个字符,进一步建议限制为 50 个字符。
这些或其他常见的 git 提交行限制的原因是什么?
我听说 72 个字符的限制与 RFC 2045 中定义的建议电子邮件宽度限制 76 有关:
(5)(软换行符)Quoted-Printable 编码要求编码行的长度不超过 76 个字符。
git 函数在生成电子邮件时会向提交消息添加 4 个字符,这会要求提交行短于电子邮件限制。反过来,我知道电子邮件字符限制与旧终端系统的 ~80 个字符限制有关。
如果这确实解释了 72 个字符的限制,那么 50 个字符的限制从何而来? Subject:只有 9 个字符,因此在 50 之前添加只会得到 59。也许我们然后添加常用的 7 个字符缩写提交哈希 ID 和一个空格,这给了我们 67,还有 5 个备用字符。
commit-message ×10
git ×9
commit ×2
git-commit ×2
git-merge ×1
git-pull ×1
hook ×1
jira ×1
monospace ×1
svn ×1
tortoisesvn ×1
vim ×1
word-wrap ×1