如果你不在分支机构,我想禁用提交。
我在开发服务器上丢失了一些代码,因为代码已提交,但从未推送过......
如果你不在分支上,是否可以阻止git提交?
更新:因为我之前已经完成了“git checkout mytag”,所以我不在分支机构。
答案 0 :(得分:1)
您可以使用Git Hooks来实现这一目标。
我在GitHub找到了一个预先提交的钩子,它完全符合您的要求:
#!/bin/sh
if ! git symbolic-ref HEAD &> /dev/null; then
echo "You are in a detached head state! Commit has been blocked. (Use --no-verify to bypass this check.)"
exit 1
fi
将它放在.git / hooks目录中名为pre-commit
的文件中,并使该文件可执行。
答案 1 :(得分:0)
原则上,如果你为项目使用git存储库,那么你总是在一个分支上,所以问题的第一部分是令人困惑的。然后,对于第二个语句,不应该使用git丢失代码,您可以回溯您的提交以找回代码。但是这部分令人困惑的部分是你在本地提交并将它们推送到你的远程分支。然后,最后,根据您的环境/ IDE,回答您的问题,可以通过简单地不提交来停止提交。因为这主要是手动任务。
我想对此进行评论(不够点),因为明智地说明你的情况要好一些,并提及你正在使用的IDE以及你所做的分支和可能的提交/命令。
关于丢失代码,您可以将分支恢复为先前的提交。如果你隐藏当前的更改,你甚至不必丢失自提交以来的任何代码。检查以下主题: