Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
docs:git:creating_and_applying_patch_files [2010/04/16 22:39] billhdocs:git:creating_and_applying_patch_files [2014/09/29 17:09] (current) – [applying a patch file (method 2)] billh
Line 1: Line 1:
 ===== creating a patch file ===== ===== creating a patch file =====
 If you are not the maintainer for a project, but still want to contribute, you can clone the repo and modify files.  You might fix a bug or add a feature.  Then you can email a "patch" file containing your changes to the actual maintainer of the project.  You might try to work on a specific bug or feature ticket. If you are not the maintainer for a project, but still want to contribute, you can clone the repo and modify files.  You might fix a bug or add a feature.  Then you can email a "patch" file containing your changes to the actual maintainer of the project.  You might try to work on a specific bug or feature ticket.
 +
 +Make sure your working copy is at the point you want as your final state.  Create a new branch if this point is somewhere behind where your current HEAD is.  Then create a patch file with the following, where "master" can be any branch name or sha-1 hash as a starting point.
 <code> <code>
 git format-patch master --stdout > your-patch-file.diff git format-patch master --stdout > your-patch-file.diff
 </code> </code>
  
-===== applying a patch file ===== +===== applying a patch file (method 1) ===== 
-First create a new branch:+Make sure you are on a clean working copy, then apply the patch to the working copy (no commits are added, only working copy files are updated): 
 +<code> 
 +git apply their-patch-file.diff 
 +</code> 
 + 
 +Now you can review the changes as necessary. 
 + 
 +Note that the above method is a git patch file, suitable for using git am.  This is not the same as a standard patch file created with diff.  Git patch files contain author's, commit messages and metadata, etc... 
 + 
 +===== applying a patch file (method 2) ===== 
 +This will add consecutive commits to your current branch, including the commit messages.  At the end of the patch, your working copy should be clean with a history of all applied commits.  First create a new branch:
 <code> <code>
 git checkout -b new-branch-name git checkout -b new-branch-name
Line 15: Line 27:
 git am < their-patch-file.diff git am < their-patch-file.diff
 </code> </code>
 +
 +Note that the above method is a git patch file, suitable for using git am.  This is not the same as a standard patch file created with diff.  Git patch files contain author's, commit messages and metadata, etc...
  
 ===== manually rewriting data for a project ===== ===== manually rewriting data for a project =====
  • docs/git/creating_and_applying_patch_files.1271479166.txt.gz
  • Last modified: 2010/04/16 22:39
  • by billh