我正在使用git与SVN仓库。我的本地“master”分支有些混乱,每次执行git svn rebase
时,我都会遇到各种问题,而我和我的同事都无法解决。所以,有没有一种方法可以从远程仓库获取干净的拷贝,并覆盖本地分支中的所有更改。
我正在使用git与SVN仓库。我的本地“master”分支有些混乱,每次执行git svn rebase
时,我都会遇到各种问题,而我和我的同事都无法解决。所以,有没有一种方法可以从远程仓库获取干净的拷贝,并覆盖本地分支中的所有更改。
重置将会把你所有跟踪的文件全部变为远程仓库里的版本。
git reset --hard
使用 "git clean -xdf" 命令也可以清除您代码库中所有未被跟踪的文件。
git clean -xdf
git log trunk..
没有显示任何内容),那么问题就在于从 svn 获取时出现了问题,而不是你的本地更改。重置确实无法解决这些问题。 - Jan Hudec您的意思是:
git reset --hard trunk
这将使当前分支指向指定的修订版本(使用修订版本进行重置)并匹配工作树(--hard
)。您的先前版本将在 git gc
90 天后保留在 reflog 中(可配置)。
请注意,trunk
的名称可能因特定设置而异(我有 svn/trunk
,但我相信在初始化 git-svn 时已定义了 svn/
前缀)。
git reset --hard SOMETHING
(trunk
是跟踪子版本主干的分支的默认名称,尽管它可能被配置为不同的名称),而他只发布了git reset --hard
。只有git reset --hard
会丢弃_未提交_的更改,我确信这对您来说是不够的。您需要参数(并需要检查您的配置是否适用于trunk
或您需要的其他名称)。 - Jan Hudec
git svn rebase
,而是将它分成两个步骤。首先执行git svn fetch
,然后执行git rebase trunk
。看看哪一个失败了,以及失败的原因,并告诉我们。 - Jan Hudec