2016-11-30 102 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教程。