我想要在所有的 git 仓库中启动“空”初始提交,方法是简单地创建一个空的 .gitignore 文件并提交。我的理由与这个问题中的差不多。基本上,第一次提交(“尾部”)没有父提交,因此会发生各种奇怪和意外的事情,这些事情在其他提交中不会发生。
那么是否有类似于 post-init 钩子的东西,我可以用它来跟随每一个 git init,使用
那么是否有类似于 post-init 钩子的东西,我可以用它来跟随每一个 git init,使用
touch .gitignore && git commit .gitignore -m "Initial commit"
?还是应该编写自己的定制初始化命令来完成这个操作?
git status &>/dev/null ||
或者其他什么东西吗?这样,如果当前目录中已经存在一个 git 仓库,myinit
命令就不会执行任何操作了。 - Ryan C. Thompsongit init
会重新复制模板(特别是*.sample
钩子)并创建目录结构(实际上没有任何操作)。如果你加了前缀,git status
并不是你想要的 - 它会比较慢。我建议使用git rev-parse HEAD &> /dev/null
。只有在HEAD
指向一个提交的仓库中才会成功 - 也就是说,如果你已经运行过git init
,它将失败,从而导致你后续的步骤发生。 - Cascabel