Skip to content

Instantly share code, notes, and snippets.

@nepsilon
Last active July 22, 2024 07:11
Show Gist options
  • Save nepsilon/22bc62a23f785716705c to your computer and use it in GitHub Desktop.
Save nepsilon/22bc62a23f785716705c to your computer and use it in GitHub Desktop.
How to generate and apply patches with git? — First published in fullweb.io issue #33

How to generate and apply patches with git?

It sometimes happen you need change code on a machine from which you cannot push to the repo. You’re ready to copy/paste what diff outputs to your local working copy.

You think there must be a better way to proceed and you’re right. It’s a simple 2 steps process:

1. Generate the patch:

git diff > some-changes.patch

2. Apply the diff:

Then copy this patch to your local machine, and apply it to your local working copy with:

git apply /path/to/some-changes.patch

And that’s it! The changes are now in your working copy and ready to be staged/commit/pushed :)

@BobToninho
Copy link

@ssi-anik Didn't think about untracked files—I always forget about them when thinking about git command, thanks!

I believe you can simplify your solution even more by using intent-to-add like this:

git add --intent-to-add --all
# or
git add -NA

@mrpointzby
Copy link

mrpointzby commented May 10, 2024

I can export the code change to .patch file, but the change only include the main part, Now I change the submodule and want to export the code change in submodule to the same .patch file so that I can apply the patch file for all code changes on new project including the submodule part, are there some commands to do this?

@rajavelraj
Copy link

Hi

@rajavelraj
Copy link

Git format-patch- 1- head

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment