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