首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何阻止git推送<branch>推送,除非我在该分支上签出?

我如何阻止git推送<branch>推送,除非我在该分支上签出?
EN

Stack Overflow用户
提问于 2012-08-17 18:10:56
回答 6查看 6.2K关注 0票数 9

我遇到的问题是我的手指会自动输入git push origin master。如果我使用的是new-branch,而我的意思是输入git push origin new-branch,而master上有未推送的更改,那么这些更改将被意外推送。有没有什么方法可以防止这种情况,使我只能推送到当前分支和从当前分支推送?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-08-17 18:19:00

您可以创建一个指向git push origin $(git branch | grep "*" | sed "s/* //")的别名,比方说,gitpushcurrent

然后重新训练你的手指,让它自动输入gitpushcurrent而不是git push origin master。因此,您不需要考虑当前分支是什么。

票数 5
EN

Stack Overflow用户

发布于 2012-08-17 18:22:49

您可以使用git push中的push.default设置指定在未提供refspec时git-config执行的操作。根据您的情况,有三种模式:

simplecurrentupstream模式适用于那些想要在完成工作后推出单个分支的人,即使其他分支还没有准备好推出。

请注意,此设置仅在未提供refspec时生效,即运行git push而不使用其他参数。git push origin master仍然会将master推送到origin

根据经验,您应该始终创建单独的工作分支,并且永远不要将中间结果提交给您的主分支。git flow简化了此工作流程。

documentation

push.default

定义在以下情况下git push应执行的操作:在命令行上未指定refspec,在远程服务器中未配置refspec,并且命令行上给定的任何选项均未隐含refspec。可能的值包括:

  • nothing -不推送anything.
  • matching -推送两端具有相同名称的所有分支。这是为那些准备好所有分支到一个可发布的形状,然后用一个命令推出它们的人准备的。它不适合推送到由多个用户共享的存储库,因为如果其他用户更新了分支,则本地停止的分支将尝试非快进推送。+这是当前的默认设置,但是Git2.0会将默认设置更改为simple.
  • upstream -将当前分支推送到其上游分支(tracking是此选项的一个已弃用的同义词)。这样,git push将更新与git pull合并的远程ref相同的ref,使pushpull对称。配置上游类似branch.
  • simpleupstream请参考branch..merge,但如果上游分支名称与本地分支名称不一致,则会拒绝推送。这是最安全的选择,非常适合初学者。这将成为Git 2.0.
  • current的默认设置--将当前分支推送到同名分支。
票数 18
EN

Stack Overflow用户

发布于 2012-08-17 20:31:25

您希望将git升级到1.7.11或更高版本,并使用“简单”push.default:

代码语言:javascript
运行
复制
o    simple - like upstream, but refuses to push if the upstream branch's name is different from the local one. This is the safest option and is
     well-suited for beginners. It will become the default in Git 2.0.

这将准确地防止您的问题。请注意,它也将成为Git2.0的默认选项。您可以使用以下命令来启用它:

代码语言:javascript
运行
复制
git config push.default simple
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12003826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档