2014-11-03 127 views
0

我喜欢重置我的本地仓库以赶上远程仓库HEAD。从Reset local repository branch to be just like remote repository HEAD和其他网站,我可以看到正常的指令集是:赶上本地git仓库到远程仓库

git fetch origin 
git reset --hard origin/master 

然而,这仍然是不够的我。我还能检查/我应该做什么?

长篇故事,与Merge remote repository commits to the local类似,我有两个本地存储库说ABB只是通过复制文件从A创建的,实际上,AB都在VM中,而B的VM是从A复制的。两个存储库AB都有相同的远程git存储库。

存储库B终其一生 - 添加了一些补丁,更新的规范文件等,而存储库A停留在虚拟机复制点。现在我想通过它们的通用远程git存储库将我的本地存储库A带到B的位置。所以我先试了git pull,但是得到了Already up-to-date.。然后我做了上述两个命令,即

$ git fetch origin 

$ git reset --hard origin/master 
HEAD is now at 49e7629 - ... 

在存储库A。但是,49e7629 HEAD仍旧比旧版本库B

git log显示存储库B仍比存储库A更新。我还能检查/我应该做什么?

与我的远程git存储库配置有什么关系?以下是我的远程git仓库:

$ cat .git/config 
[core] 
     repositoryformatversion = 0 
     filemode = true 
     bare = false 
     logallrefupdates = true 
[remote "origin"] 
     url = ssh://[email protected]/myid/myrepo.git 
     fetch = +refs/heads/*:refs/remotes/origin/* 
[branch "master"] 
     remote = origin 
     merge = refs/heads/master 

感谢

+0

将repo B中的更改推送到远程以便可以将它们拉出? – Schleis 2014-11-03 20:42:23

+0

Duh!而已。我感觉真的很愚蠢。 :-)请“回答”,以便我可以“接受”。 THX – xpt 2014-11-04 19:05:39

回答

0

变化回购b。查找更多相关信息需要以被推到共享的远程回购A到拔出。否则,B中的更改仅限于B本地。

+0

Duh!我非常关注'git status'输出中没有添加任何提交内容,我完全没有注意到'你的分支在4次提交之前超过'origin/master'“。谢谢! – xpt 2014-11-04 20:11:09

0

我的理解是: A和B都是一样的遥远的远程存储库(命名为原点) 的克隆要更新A和B中的变更

对于这种情况下的溶液将是: 将自己在A,然后,添加B,为远程:

git remote add originB /path/to/B/repository 

您现在可以列出你的遥控器:

git remote -v 

这应该打印:

origin ssh://[email protected]/myid/myrepo.git (fetch) 
origin ssh://[email protected]/myid/myrepo.git (push) 
originB /path/to/B/repository (fetch) 
originB /path/to/B/repository (fetch) 

现在你可以获取/合并/ ...从originB,下列正确的语法。举一个例子:

git pull originB anybranch 

您将在http://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes