当前位置:  开发笔记 > 运维 > 正文

如何配置git以避免意外的git推送

如何解决《如何配置git以避免意外的git推送》经验,为你挑选了3个好方法。

在git clone之后,新repo中的配置如下所示:

remote.origin.url=
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master

然后,我可以执行"git pull"和"git push".但我只对"git pull"感兴趣,因为我想推进另一个回购.

我能做的一件事是:

git add remote repo-for-push 
git push repo-for-push master

但我想配置git使用默认和不同的存储库进行拉取和推送,即:

git pull # pulls from origin
git push # pushes into repo-for-push, avoiding accidental push into the origin

如何配置?提前致谢.

编辑:
基本上,我想设置默认的push repo与默认的fetch/pull repo不同.



1> iny..:

好像

git config remote.origin.receivepack /bin/false

使推送到远程原点失败.



2> Phil Miller..:

在1.6.4版本中,Git使用remote.name.pushurl配置设置获得了从一个URL进行远程提取并推送到另一个URL的功能.如果push-repository没有跟踪pull-repository,我可以想象出奇怪的行为,但是我怀疑Git会尝试从当前/跟踪/匹配分支快速转发push-repository,而不考虑它是什么当它询问同名的遥控器时会拉.

例如,如果你想通过匿名git协议,但通过SSH推送(也许你需要一个SecurID令牌或某些东西进行身份验证):

[remote "myremote"]
    url = git://server/path
    pushurl = user@server:/path



3> Emil Sit..:

我不确定你今天能用Git做到这一点.git-fetch(在builtin-fetch.c中)和git-push(在builtin-push.c中)的实现都调用内部函数remote_get(NULL)来标识pull-from/push-to的默认存储库.

一种选择是创建一个指定所需仓库的别名.例如:

git config --add alias.mypush "push repo-for-push"

然后你可以:

git mypush

推动你想要的回购.当然不完全是你想要的.(您也可以考虑使用--repo参数;请参阅http://kerneltrap.org/mailarchive/git/2008/10/7/3537694,了解最近的文档更新,其中阐明了--repo参数.)

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有