2013-11-03 118 views
0

我最近将所有项目从Subversion移到了Git。思考一切都很好,很花哨,我继续像往常一样开发我的一个项目,但没有意识到(到现在为止),我一直在修改旧项目目录中的文件,而不是新的Git跟踪目录。将未跟踪的文件夹合并到已跟踪的Git存储库

Git repo是最新的,每个提交都包含旧项目工作目录中使用的提交。

编辑:为了澄清,两个文件夹具有相同的结构和代码,只是有一个变化比Git仓库的HEAD更新。 (Git Repo自此以后没有任何更改)。

是否有可能,以及如何将我的其他未跟踪文件夹中的更改合并到新的Git跟踪文件夹中?我想合并所做的更改而不会搞乱太多。有什么建议?

回答

1

我个人认为你想达到的是非常安全的。但是不需要删除旧的项目目录或对其进行任何更改,直到您确定要跟踪的所有更改都被跟踪。

假设:

  • 你行与跟踪你到老项目目录所做的所有修改在一个单一提交

在你的Git仓库,创建一个备份分支。为了方便起见,我们只是把它备份:

git branch backup 

然后,复制并粘贴一切从你的老项目目录到Git仓库。您可以执行git statusgit diff或沿着这些线检查更改。尝试构建您的项目并运行测试套件。

如果您认为出现了问题,您总是可以执行git reset --hard HEAD来重置对git存储库所做的更改,以便在复制并粘贴旧存储库之前取回内容。

如果出现严重错误,您可以随时删除当前分支,并从之前创建的backup分支创建一个新分支(实际上是该分支的克隆)。

一旦你满意,做一个git commit -as或类似的。

希望有帮助!

+0

那就是我在想什么,但是我不确定线结束正常化和.gitignore文件会发生什么情况等。我给这个镜头!谢谢 – jduncanator

+0

啊,哈哈,那是我没有看到的东西。日志文件...该软件在运行时生成日志文件,显然,当我们Git2Svn'ed它时,它并没有将这些日志文件拖入git仓库。我想我必须添加一些新的.gitignore规则! – jduncanator

+0

工作就像一个魅力!谢谢! (和嘿,.gitignore已经忽略了.log文件:P) – jduncanator