4

我正在使用 git 开发一个开源项目。

我对源代码进行了一些修改(修改现有文件,添加新文件,删除现有文件),我想生成一个补丁文件而不提交。怎么做 ?

4

3 回答 3

4

它并不广为人知,或者它只是没有被广泛用作 SO 上的解决方案,但它的输出git diff是一种有效的补丁格式,可以通过管道传输到git apply. 因此,假设您有一个未暂存的更改要用于生成补丁:

git diff -- <file> > ~/mypatch ;# redirect diff output to ~/mypatch

然后在另一个存储库中:

git apply < ~/mypatch

假设您有一个根本不被跟踪的全新文件。您仍然可以git diff通过指定--no-index标志并将文件与以下内容进行比较来使用/dev/null

git diff --no-index /dev/null <file> ~/mypatch

然后以同样的方式应用它。

这个答案主要是关于 git 可以做什么的练习。我想不出任何实际理由不在新分支(通过 Adam Dymitruk 的回答)或您正在使用的主分支(根据 madth3 的评论)上进行本地更改。

于 2012-08-17T12:59:26.757 回答
4

对于项目中添加的新文件:

git add -N <path of the new file>

然后生成补丁:

git diff > patch
于 2012-08-17T15:35:16.910 回答
-1

做出承诺。

git checkout -b myfeature

首先,如果你喜欢

于 2012-08-16T17:13:39.687 回答