【问题标题】:Prevent git to push to wrong remote防止 git 推送到错误的远程
【发布时间】:2015-10-16 04:18:45
【问题描述】:

我有一个本地分支“gh”,我总是想将它推送到我在 github 上的帐户;我还有另一个本地分支“实验室”,我总是想将其推送到我组织在 github 上的帐户。
我为此设置了两个遥控器(gh 和 lab)。

$ git remote -v
gh  git@Ninguem.github.com:Ninguem/prj.git (fetch)
gh  git@Ninguem.github.com:Ninguem/prj.git (push)
lab git@Ninguem.github.com:lab-rasparta-org/prj.git (fetch)
lab git@Ninguem.github.com:lab-rasparta-org/prj.git (push)

我怕推的时候不小心弄乱了两人。有没有办法防止这种情况发生?
注意:
我已经成功获取了这两个,所以我认为它们以某种方式正确“链接”在一起......我如何管理哪些分支“链接”到哪些远程分支并且有安全机制吗?

【问题讨论】:

  • 看看this question 的答案。我认为它们包含你需要的东西。

标签: git github push git-remote


【解决方案1】:

我注意到您可能会混淆术语 branchremote

  • A remote 远程存储库是托管在 Internet 或某处网络上的项目版本。

  • branch 让您创建一个隔离环境以在存储库中进行更改。


我相信您正在努力避免在推送到错误的遥控器之间产生混淆。

所以假设你的个人 GitHub 帐户中有一个分支 my_branch

确保您正在使用的遥控器更安全的方法是明确说明您要推送到哪个遥控器:

  • 如果你想推送到你的个人仓库:

    git push gh my_branch
    
  • 如果您想推送到您组织的仓库:

    git push lab working_branch
    

这将是他的模式:

git push <remote> <remote_branch>


您还可以设置一个本地分支来跟踪远程gh 上的远程分支,如下所示:

git checkout -b my_branch -t gh/my_branch

希望这会有所帮助。

【讨论】:

  • 我刚刚了解到 git-branch 的 -vv 选项向我显示了每个本地分支正在跟踪的远程/分支。还注意到 not 指定远程推送到正确的。也许我应该坚持这条规则(虽然不是“安全机制”)。
  • 我不明白我可能在哪里弄乱了条款。不是母语人士,抱歉。也许最后一句话应该是“[...]我如何管理哪些本地分支“链接”到哪些远程分支[...]”。
  • I have a local branch ghI have a local branch lab 与遥控器的名称相同,这让我想到了这一点。你有与远程同名的本地分支吗?
  • 是的,就是这样。谢谢。
【解决方案2】:

如果你真的想避免把事情搞砸,那么你可以考虑使用两个本地仓库,每个 cloning a specific branch:

  • 一个克隆Ninguem.github.com:Ninguem/prj.git
  • 一个克隆Ninguem.github.com:lab-rasparta-org/prj.git

这样,你确定你没有在错误的分支中,或者推送到错误的远程。

【讨论】:

  • @Ninguém 否,因为 repo 的本地路径会清楚地提到 repoA 或 repoB。
  • 再一次。你是对的,但只是在不太可能的情况下,我会关注这些细节。这正是我害怕错过的。 ;-)
  • @Ninguém 试图在同一个仓库中管理它比在单独的仓库中更危险,以我的经验。
  • 哼...你不觉得分支跟踪的自动机制足够安全吗,只要我在推送命令中没有错误地提到错误的远程名称?
猜你喜欢
  • 2016-05-03
  • 2017-07-22
  • 2013-03-07
  • 2018-01-28
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
  • 2011-09-10
  • 2016-07-08
相关资源
最近更新 更多