繁体   English   中英

将本地git仓库追赶到远程仓库

[英]Catch up local git repository to remote repository

我想重置本地存储库以赶上远程存储库HEAD。 重置本地存储库分支就像远程存储库HEAD和其他站点一样,我可以看到正常的命令集是:

git fetch origin
git reset --hard origin/master

但是,这对我来说还不够。 我还能检查/应该做什么?

长话短说,类似于Merge远程存储库提交到本地 ,我有两个本地存储库,分别是AB B从创建A只是复制文件,以及事实上,无论是AB在虚拟机和虚拟机B从复制A 仓库AB都具有相同的远程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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM