如何删除我的git-svn checkout中的文件,这些文件在dcommit之后仍然存在?

时间:2013-01-31 08:43:12

标签: git git-svn

我使用svn命令克隆了git svn clone存储库。在我的本地工作副本上,我做了一些更改并删除了几个文件。在我使用git commit在本地检查更改之后,是时候将更改推送到存储库了,我这样做了

git svn dcommit
git svn rebase

所有新文件和目录都已推送到存储库,但删除的文件仍在主机系统的存储库中!换句话说:即使在git svn rebase之后(据我所知,这是从存储库获取所有更改的命令),我的本地副本和存储库也大不相同!

为了让自己更清楚:我在远程/主机上有一个存储库,它是人们可以访问许多不同存储库的中心位置。我将其中一个存储库签出到我的本地计算机,进行了一些更改(即删除了文件),然后想要将我的更改推送/发送/保存到中央存储库。创建了新文件,但我删除的文件仍存在于中央主机上的中央存储库中。

我需要做些什么才能使本地结帐和主机系统上的存储库相等?

1 个答案:

答案 0 :(得分:0)

问题可能出在svn存储库,无法正确处理remove语句。

我认为所述程序没有任何问题,但这里是“手动”删除不需要的目录的程序(假设只留下目录,所有文件都在其中正确删除。)

  1. 查看svn存储库

    svn co <e.g. link to trunk path>
    
  2. 在本地结帐中手动删除所有目录(不会立即在本地文件结构中删除它们)

    svn rm <directory>
    
  3. 将更改提交到存储库,之后更改在存储库和本地文件结构中可见

    svn commit -m "<Sense-full message>"