如何将本地目录转换为Git,比较与远程存储库的差异,然后提交?

时间:2015-09-18 22:25:33

标签: git

我错误地将更改写入了不再受Git版本控制的远程存储库副本。我需要将此本地目录转换回Git存储库,比较与远程分支的差异,然后像往常一样只在顶部提交这些更改。

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

我将看到的最简单的解决方案是使用git diff指定更改的实际文件。

以下内容:

 git diff non_git_dir/the-files-*.js git-dir/the-files-*.js > patch.diff

如果你的磁盘上有这两个目录,并且可以相对容易地指出你知道的文件已经改变,那么它将生成一个相当不错的差异文件。

然后你只需要在你的git托管目录上应用diff:

  git apply patch.diff

从那里你可以提交或做你想做的事。

但是,如果更改是广泛的,或者您因任何原因无法在磁盘上拥有这些文件。也许你可以尝试:

  • 让你的旧东西再次由Git管理:git init
  • 提交所有内容:git add . git commit -m"ALL THE THINGS"
  • 添加远程仓库:git remote add new git@github:newrepo.git
  • 然后尝试生成可接受的差异:git diff master new/master
  • 应用差异可能是最干净的解决方案,因为合并在历史上看起来非常可疑

当然也有可能只是复制文件并检查在提交之前丢失的任何潜在代码。

但这听起来像是在作弊

我的两分钱......

相关问题