将Git配置为在推送到与当前分支不同的分支时显示警告

将Git配置为在推送到与当前分支不同的分支时显示警告,git,github,Git,Github,有没有办法将Git/Github配置为在这种情况下提示警告消息: $> git branch $> *my_special_branch $> git commit -am "I am about to make a grave error" $> git push origin master 基本上,我想防止我自己和我的团队在没有警告或确认提示的情况下,推到与当前分支不同的远程分支 因此,基本上我想防止从任何分支(本地主分支除外)推送到远程主分支…根据我的理解,您需要

有没有办法将Git/Github配置为在这种情况下提示警告消息:

$> git branch
$> *my_special_branch
$> git commit -am "I am about to make a grave error"
$> git push origin master
基本上,我想防止我自己和我的团队在没有警告或确认提示的情况下,推到与当前分支不同的远程分支


因此,基本上我想防止从任何分支(本地主分支除外)推送到远程主分支…

根据我的理解,您需要特定分支的用户权限

有各种工具(存储库管理工具)提供此功能

借助这些工具,您可以向用户授予分支级别的权限。由于主分支始终处于部署就绪状态,因此只有领导有权访问,其他人不能与主分支合并。同样,开发人员将有权创建拉动请求(用于代码审查和与其他分支合并的请求),lead将对其进行审查,一旦lead确信其功能,他将批准代码并将其与主分支合并


选择存储库管理工具需要存储库是本地的还是云上的。如果前提是我的建议是使用Stash-else,那么您可以使用bit-bucket或github-for-cloud。

我认为没有办法完成您要求Git做的事情。由于您和您的团队成员拥有对存储库的推送访问权,因此您可以自由地推送到任何其他您想要的分支,无论是主分支还是其他分支

当你在另一个分支上时,你可以做的是向master提交一些东西,这样你就不会意外地推,因为master在提交之前

另一件事是,您自己只需拥有push访问权限,然后您的团队成员就必须执行pull请求,如果他们想向master提交一些内容,但我敢肯定,这并不理想


不过这个问题很有趣,我会留到以后,以防有人给出具体的答案。很抱歉,没有比这更有用的了。

我认为最好的方法是:

您可以将Git配置为具有某些默认行为

例如,如果您这样配置Git:

git config --global push.default current
您可以省略branchname,它将默认将当前本地分支推送到具有相同名称的远程分支

因此,如果运行此命令,将忽略“refspec”/branchname

$> git push origin
然后,它将只将当前分支推送到具有相同名称的远程/源分支


它省去了你输入长分支名称的麻烦,并起到了一点安全的作用

不是用四个字的形式,不是:但是请注意,用这个形式,你把你的主节点推给origin的主节点,而你根本没有推
my_special_branch
。git push origin master似乎将当前本地分支推送到远程主分支上面的评论2是错误的,你将推送到主分支上,就像OP所说的那样。但是,如果您执行git push origin my_special_分支,那么您是在将my_special_分支推送到一个新的远程分支。@ItoA:请参阅并注意,这个四字表单,
git push origin master
,既指定了一个存储库(
origin
),也指定了一个refspec(
master
)。然后查看
选项下的第3段:缺少
意味着推送到配置的目的地,或者默认情况下推送到相同的名称,即
主机
。(确实,如果您更改了一些配置参数,您可以覆盖此设置,但通常情况下,它会将
主机
推送到遥控器的
主机