我正在使用git进行一个开源项目的工作。
我对源代码进行了一些修改(修改现有文件、添加新文件、删除现有文件),并希望生成一个补丁文件而不需要提交。如何做到这一点?
我正在使用git进行一个开源项目的工作。
我对源代码进行了一些修改(修改现有文件、添加新文件、删除现有文件),并希望生成一个补丁文件而不需要提交。如何做到这一点?
对于项目中新增的文件:
git add -N <path of the new file>
git diff > patch
很多人并不知道,或者可能它在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 checkout -b myfeature
首先,如果您喜欢的话
git add
命令,则git diff
将以补丁的形式显示差异。 - another.anon.coward