【问题标题】:"git push" doing the same as "git fetch" from the remote“git push”和远程的“git fetch”一样
【发布时间】:2010-11-21 17:04:31
【问题描述】:

我的问题与this one 相同,但我并不清楚答案。 我有两个同步的 git repos A 和 B(对应于我工作的两台机器)。当我开始在 B 工作时,我通常会做git fetch A(假设 B 中的远程 A 指向 repo A)。 但我希望能够在我在 A 工作时从 A 推送到 B 内的远程分支 A。我想确保它是安全的,因为有关推送到非裸仓库的警告。我的设置(在文件 A/.git/config 中)是:

[remote "B"]
fetch = +refs/heads/*:refs/remotes/B/*
push =  +refs/heads/*:refs/remotes/A/*
url = ssh://<machine_B>/home/project/B

使用此设置,我是否可以通过这两个命令获得完全相同相同的结果? :

  • 在答:git push B
  • 在 B 中:git fetch A

【问题讨论】:

    标签: git push fetch


    【解决方案1】:

    如果您在 A 中执行 git push B,则您已经更新了 B 中的 refs(仅更新了您实际推送的那些),因此 B 中的后续 git fetch A 不需要更新特定更新的 refs。

    【讨论】:

    • 是的,但是当切换到机器 B 时,我是否可以在两个选项之间进行选择,并确保它们具有完全相同的结果(并且推送将是完全安全的)?
    【解决方案2】:

    我在kerneltrap mail archive 上找到了我的问题的确切答案,由一位主要的 git 开发人员提供。所以是的,这两个命令是等价的。

    【讨论】:

      猜你喜欢
      • 2015-09-22
      • 2020-01-31
      • 1970-01-01
      • 2013-05-26
      • 2013-07-22
      • 1970-01-01
      • 2011-02-05
      • 2011-02-24
      • 2012-06-24
      相关资源
      最近更新 更多