Skip to main content

How to generate git diff patch?

To understand the process involved in it, we need to first understand the terminologies that is being used in the git.
Suppose you have committed your code in Git repository. Now when you select the particular commit, then you will see something like this
TK-34164 e2e test cases added
Commit: 96f17e85e5b76cff8a6a0332c4f22d10aca3aec6 [96f17e8]
Parents: 56a575c5b8
Author: Abhishek Kumar 
Date: 3 January 2017 at 18:52:06 IST
Labels: HEAD -> feature/TK-34164-configure-robot-framework-into
Here at line #1 is custom message for the commit, after that at line #2 you see a commit-id which is 40 characters long hexadecimal string (SHA-1) and it's short version in square bracket which is 7 characters long. 
SHA-1 (Secure Hash Algorithm 1) produces a 160-bit (20-byte) hash value known as a message digest. A SHA-1 hash value is typically rendered as a hexadecimal number, 40 digits long.
This commit-id is 160-bit SHA-1 hash, uniquely represents the new, post-commit state of the repository. 
Now we need to get the changes of our code, that is known as diff. We can get the diff by using this command.
For single commit
git diff-tree -p {commit} > {filename}
Here, {commit} is a single short commit-id and {filename} is a patch file that could be like patch.diff
For multiple commit
git diff-tree -p {from-commit}..{to-commit} > {filename}
Here, {from-commit}..{to-commit} is a range of short commit-id and {filename} is a patch file that could be like patch.diff
So you need to just replace the portion of string with curly bracket with your specific content.
This way you can generate a patch.diff via git program.
In case you want to merge this patch.diff into the repository, then use the following command
git apply patch.diff
That's it!

Comments

Popular posts from this blog

Unlock protected blocks in Siemens SIMATIC Step 7

Recently I'd been called by Hindalco's Fabrication Plant division to unlock the protected blocks in Siemens SIMATIC Step 7. They were in need to unlock those blocks since an year because of 1 million Rupees of loss per month. They want to re-program those blocks but it was locked by the man who'd done the setup. From the people working in that department, I came to know that they were trying to call that man (someone from Italy) right here but he's not coming. Actually, what he'd done was that he'd locked some of the blocks and deleted the source file. And Siemens didn't provide any feature to unlock. Department people also told me that even the people working in Siemens don't know how to do it. Being a software engineer I know that any thing can be reverse engineered. So I took up the challenge. How did I unlocked the blocks? The first thing I'd done was searched about this software at Google and read about what is this software all about. Aft...

Launching a Jupyter Notebook with TensorFlow using Docker

This article will walk you through setting up a Jupyter Notebook environment with TensorFlow pre-installed using Docker. Docker allows you to run isolated containerized applications, providing a consistent environment regardless of your underlying operating system. Prerequisites: Docker: Ensure you have Docker installed and running on your system. You can download and install it from the official Docker website ( https://www.docker.com/ ). Steps: Start Docker: Open your Docker application (Docker Desktop for Windows/macOS or the command line if using Linux). Run the Jupyter Notebook container: For macOS/Linux: Open your terminal application and run the following command: docker run -it --rm -p 8888:8888 -v "${PWD}":/home/jovyan/work jupyter/tensorflow-notebook For Windows: Open your Command Prompt application and run the following command: docker run -it --rm -p 8888:8888 -v "%CD%":/home/jovyan/work jupyter/tensorflow-notebook Explanation of the command flags: -...

JS: The complete code example of Crypto.js (DES)

For one of the project I was trying to use crypto.js but I found that the Quick-start Guide have some deficiency in terms of library usage. So I am writing it here as a useful note for memory recap. <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/tripledes.js"></script> <script> var encrypted = CryptoJS.DES.encrypt("The secret message", "secret_key"); var e_msg = encrypted.toString(); console.log(e_msg); var decrypted = CryptoJS.DES.decrypt(e_msg, "secret_key"); var d_msg = decrypted.toString(CryptoJS.enc.Utf8); console.log(d_msg); </script>