Skip to main content

Git Revert is Easier Than You Might Think

 

 

Its surprisingly easy and not as complicated as some people might say. You just need to know which one is the 'bad' commit, then revert to one commit before the 'bad' one. In this example, person 'M' accidentally pulled from the dev branch instead of main. So to revert this, just follow these steps:


Find the 'bad' commit

In this case it's git message have something like 'pulled dev into branch...'. This is the bad commit, do not copy the git hash of this commit. Instead, get the last 'good' commit. Copy the commit hash of the one before the 'bad' one. Paste it somewhere safe, we will get back to this later. Do not revert right now.
 

Backup your commits after the 'bad' one

After pulling from dev, 'M' pushed a few more commits afterwards. If we've already reverted, finding the committed changes would be a bit harder. So now is the best chance to copy all the commit hashes for cherry-picking later. 
 

Revert to last 'good' commit

Now that you have all the relevant commit hashes, it's time to revert to before the bad commit happens. 
git reset --hard <commit_hash>

 

Cherry-pick the committed changes

You will notice that your commit history has changed. Bad commit is no more, and now is the time to cherry-pick back all the good commits you saved earlier. Make sure to cherry-pick them in chronological order.
git cherry-pick <commit_hashes>

Push the new commit history

You local branch has been fixed. Next is to push the new commit history using the provided command. This will overwrite the remote branch, ensuring it follows the fixed local branch.
git push --force-with-lease


That's it. Reverting is not that hard as long as you remember to follow the steps. Hope this is as useful to you as it is to me. 

Comments

Popular posts from this blog

Setup existing IONIC project in local

Setup existing IONIC project in local  Steps: clone git repo install ionic -  npm install -g @ionic/cli masuk folder repo project install npm dependencies -  npm install run ionic project -  ionic serve buka android studio / xcode -  ionic cap open $var  - $var = ‘android’ atau ‘ios’. ada dua je option, replace $var dgn dua option tu sync changes vscode & dkt android studio / xcode -  ionic cap sync good luck Common issues: dependency conflict check https://www.npmpeer.dev/ utk tengok version yg compatible try naikkan/turunkan version dependency yg keluar dkt error. tembak je sampai hilang error g radle issue try upgrade gradle. kalau tak boleh, try remove folder android & build semula e rror cocoapod make sure install xcode make sure install cocoapod error java  home not found utk mac, buka ~/.zshrc & masukkan chang es dkt VSC tak masuk android studio / xcode try ionic cap sync try quit & buka semula cordo va.variables.gradle no...

🗑️ Clear storage Mac OS

  🗑️ Clear storage Mac OS 1: Clear system cache: Go to Finder > Go > Go to Folder, then type in "~/Library/Caches" and hit enter. Select all the folders inside the Caches folder and delete them. 2: Clear system logs: Go to Finder > Go > Go to Folder, then type in "/var/log" and hit enter. Select all the files inside the Log folder and delete them. 3: Remove unused language files: Go to Finder > Go > Go to Folder, then type in "/Library/Languages" and hit enter. Delete all the language folders you don't need. 4: Uninstall unused apps: Go to the Applications folder and delete the apps you don't use. 5: Clean up system files: Use a system cleaning tool like CleanMyMac X to scan and remove unnecessary system files. 6: If you have npm installed, clear the caches once in a while with ‘sudo npm cache clean --force’ 7: If you have ionic projects, open the ‘.angular’ folder and delete the ‘cache’ folder inside it.

Vulnerabilities in Dependencies

Vulnerabilities in Dependencies - A Lesson from 4Chan Case Study: The 4Chan Security Breach The Neglect 4Chan had not updated its project dependencies since 2009. The Vulnerability One specific dependency was publicly known to have multiple critical vulnerabilities: Ghostscript.  Ghostscript Vulnerability Reports (Snyk) Attack Vectors: Local File Inclusion (LFI): The system processed PDF files without verifying if the uploaded file was actually a PDF. Remote Code Execution (RCE): After a successful injection, attackers could run malicious scripts directly on the server. The Wake-Up Call This event serves as a modern reminder of the critical importance of keeping dependencies up to date. Dependencies Audit & Status These are some of the dependencies commonly used. mPDF (Fixed) Vulnerability: Deserialization of untrusted data (similar to the 4Chan/Ghostscript exploit). Risk: Affects all versions lower than 7.1.8. aws/aws-sdk-php (Fixed) Path Traversal Affects versions lower t...