2016-11-30 125 views
0

我有一個SVN服務器S1。我在兩臺電腦PC1PC2上提取知識庫。我在PC1上添加了git commit,這要歸功於git commit,然後通過svn dcommit將它們添加到服務器。一切都很美好。更改在服務器上。接下來我去了PC2並嘗試'git svn fetch'。它獲取最後一次提交(我希望如此,因爲終端輸出看起來像它提取),但我沒有看到日誌中的最後提交。另外我沒有看到文件的新變化。兩個git-svn存儲庫克隆,新提交不出現

也許問題與我製作我的兩個存儲庫的方式有關。 PC1的存儲庫是由git svn所作。但是PC2的存儲庫是來自PC1的硬拷貝(通過scp -rf)。

這是什麼問題?

+0

當我的回購服務器是svn服務器時,我必須使用'git push'嗎?我以爲'git svn dcommit'這樣做。 –

回答

0

嗯......現在我用git rebasePC2和我的文件更改爲我昨天發佈在PC1上的最新版本。有趣。

好吧,這是一個解決方案。爲了與PC1我所做的更改對PC2更新回購協議

git svn fetch 
git stash 
git svn rebase 
git stash apply 

編輯:是的,只有git svn rebase做它的工作!

+0

你甚至可以省略'fetch','rebase'將首先''獲取''。 'git svn fetch'就像'git fetch'一樣,它將最新的更改提取到遠程跟蹤分支中,但不會與當地分支混雜在一起。 – Vampire

1

fetch從遠程到本地存儲庫獲取修訂版,但不更新您的工作目錄。請參閱git log --graph --all並請閱讀一些git教程。