2014-11-03 142 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

相關問題