[英]Catch up local git repository to remote repository
我想重置本地存储库以赶上远程存储库HEAD。 从重置本地存储库分支就像远程存储库HEAD和其他站点一样,我可以看到正常的命令集是:
git fetch origin
git reset --hard origin/master
但是,这对我来说还不够。 我还能检查/应该做什么?
长话短说,类似于Merge远程存储库提交到本地 ,我有两个本地存储库,分别是A
和B
B
从创建A
只是复制文件,以及事实上,无论是A
和B
在虚拟机和虚拟机B
从复制A
。 仓库A
和B
都具有相同的远程git仓库。
存储库B
终其一生-添加了一些补丁,更新的规范文件等,而存储库A
处于VM复制点。 现在,我想通过它们的公共远程git存储库将本地存储库A
带到B
所在的位置。 因此,我首先尝试了git pull
,但现在Already up-to-date.
。 然后我执行了以上两个命令,即
$ git fetch origin
$ git reset --hard origin/master
HEAD is now at 49e7629 - ...
在存储库A
。 但是,与存储库B
相比, 49e7629
HEAD仍旧。
git log
显示存储库B
更新比存储库A
更新更多。 我还能检查/应该做什么?
与我的远程git存储库的配置有什么关系吗? 这是我的远程git存储库:
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://git@bitbucket.org/myid/myrepo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
谢谢
我的理解是:A和B是相同远程存储库(命名为origin)的克隆,您想用B更改来更新A
对此情况的解决方案是:将自己置于A中,然后将B添加为遥控器:
git remote add originB /path/to/B/repository
现在,您可以列出您的遥控器了:
git remote -v
应该打印:
origin ssh://git@bitbucket.org/myid/myrepo.git (fetch)
origin ssh://git@bitbucket.org/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中找到更多信息。
需要将存储库B中的更改推送到共享的远程服务器上,以便存储库A进行更改。 否则,B中的更改仅对B本地。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.