我正在使用 git 开发一个开源项目。
我对源代码进行了一些修改(修改现有文件,添加新文件,删除现有文件),我想生成一个补丁文件而不提交。怎么做 ?
它并不广为人知,或者它只是没有被广泛用作 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 的评论)上进行本地更改。
对于项目中添加的新文件:
git add -N <path of the new file>
然后生成补丁:
git diff > patch
做出承诺。
git checkout -b myfeature
首先,如果你喜欢