Git 推送 "unmanaged" 更改

Git push "unmanaged" changes

不久前,当我刚接触 git 时,我做了一些蠢事。

具体来说,我使用 "download zipfile" 选项复制了一个项目,并在本地对其进行了一系列更改。因此,在 git 的术语中,整个目录基本上是不受管理的。没有 .git 类型的目录或文件(压缩文件中的 .gitignore 除外)。

现在,当然,我需要将更改放回存储库中。

解决此问题的最佳方法是什么?一个可取之处是在此期间没有任何人(不是我,也不是其他任何人)进行任何更改。

我唯一能想到的就是在项目上做一个适当的 "git clone",然后手动比较每个文件,将更改的文件复制到位,然后对其进行正常推送.但这似乎是一项艰苦的工作,耗时且容易出错。我怀疑系统有一个简单的方法来解决我的这种愚蠢行为?

干杯, 西蒙

只需克隆并将修改后的项目完整复制到克隆中即可。让 git 担心找出哪些相关文件发生了变化;它擅长于此。根据需要提交和推送。

(假定 zip 文件中项目的文件夹布局与 git 存储库中的相匹配。)

由于在生成 zip 文件后没有发生任何变化,因此事情变得更简单了。有两种方法可以做到这一点。第一个适用于一般处理 "I made edits to a release and now I don't know what I did" 问题,而不管是否可以访问版本控制。

  1. 在不同的位置再次解压缩原始存档。
  2. diff -r original devel > my.patch获取补丁文件。
  3. git clone 存储库。
  4. patch -p1 < /path/to/my.patch.
  5. git add -A . 添加所有更改(包括删除的文件)
  6. git commit.

涉及 git 时我更喜欢的另一种方法是...

  1. git clone 存储库。
  2. 删除所有文件(.git 目录除外)。
  3. 从您进行开发的存档目录中复制所有文件。
  4. git add -A . 添加所有更改(包括已删除的文件)。
  5. git commit.