2011-08-24 142 views
3

我使用git与SVN存储库。我的本地'主'分支有点搞砸了,每次我做一个git svn rebase我都会遇到各种各样的问题,我和我工作的人都无法解决。那么有没有一种方法可以从远程存储库中获得一份干净的副本,它只会覆盖本地分支中的所有更改。使用git从远程存储库获取干净的副本

+0

我想我们需要更多的细节来帮助你。第一步应该是,不是“git svn rebase”,而是分开做两件事。首先,做'git svn fetch'并且做'git rebase trunk'。看哪个失败了,怎么告诉我们。 –

回答

-1

你的意思是:

git reset --hard trunk 

这将使在指定的修订(带有修订复位)和worktree匹配(--hard)当前分支点。您之前的版本保留在reflog中,直到git gc 90(可配置)天后。

。注意,因为它依赖于特定的设置(我有svn/trunk,但我相信我已经初始化混帐SVN时所定义的svn/前缀)trunk的名称可能是不同的。

+0

查看关于Kits post的评论,因为你们都发布了相同的内容。我认为;) – screenm0nkey

+0

@ screenm0nkey:我们发布**显着不同**的东西。我发布了'git reset --hard SOMETHING'('trunk'是分支跟踪颠覆树干的默认名称,虽然它可能配置不同),但他只发布了'git reset --hard'。只是'git reset --hard'只会丢弃_uncommitted_变化,我相信这对您来说是不够的。你需要这个参数(并且需要检查你的配置文件是否有'trunk'会做或者你需要什么名字)。 –

6

复位将改变所有的跟踪文件到您的远程仓库

git reset --hard 

清洁-xdf会在你的仓库也很清楚你所有的未跟踪文件

git clean -xdf 

这将帮助你做一个“整个“清洁存储库。

+0

迟到的道歉。这不符合我的预期。其实,它没有奏效。它显然做了一些事情,但不是我想要的。我只想获取远程SVN存储库中的所有文件和提交,以替换当前的本地git存储库。一种'更新我的本地主存储库的一切,不要问我任何问题。只是覆盖它' 问题是它不断进入rebase区域,它告诉我文件上有锁。我删除锁,添加更改,更新git,然后发生同样的事情。我仍然是一个不喜欢git的人。 – screenm0nkey

+0

@ screenm0nkey:这是别的地方的问题。如果你没有任何本地修改('git log trunk ..'什么都没有显示),那么问题在于从svn获取,而不是你本地的修改。重置确实不会解决这些问题。 –

相关问题