Runs fetch + merge silently. Creates a hidden merge commit on your branch. The #1 cause of messy histories.
Use this instead:
git fetch then git rebase origin/develop
VS Code "Sync Changes" button
Does pull + push in one click silently. You cannot see what it does before it does it.
Use this instead:
Open terminal (Ctrl+`) and run every step manually
VS Code Pull button (down arrow)
Identical to git pull. Creates a hidden merge commit.
Use this instead:
git fetch then git rebase origin/develop
git reset --soft on a shared branch + git add .
Un-commits everything including teammates work into your working directory. One wrong git add . and you commit someone elses code as your own.
Use this instead:
git rebase -i HEAD~N -- only touches your own commits
git push --force
Overwrites remote with no safety check. Can silently delete teammates commits.
Use this instead:
git push --force-with-lease
git reset --hard
Permanently deletes all uncommitted file changes. No undo possible.
Use this instead:
git stash -- saves everything, restore anytime with git stash pop
VS Code "Discard All Changes"
Same as git reset --hard. Permanently wipes all uncommitted work instantly.
Use this instead:
git stash -- or right-click individual files and discard only those
IDE -- what is safe and what is not
Safe to use
Stage file (+) -- click + next to individual files only, never "Stage All"
Commit button -- same as git commit
Merge conflict editor -- 3-way conflict resolver
Discard single file -- right-click one file only
Branch switcher -- bottom-left VS Code, Git panel IntelliJ
Never click
Sync Changes -- pull + push silently
Pull button (down arrow) -- hidden merge commit
Push button after rebase -- use terminal with --force-with-lease
Discard All Changes -- permanent, use git stash
Stage All after soft reset -- stages everyones files
Golden pattern: Terminal (prepare) then IDE (stage your files + commit) then Terminal (push, verify).
How Git Works
Your code lives in two places. Here is what moves where and why each operation exists.
Your Computer -- private until you push
Stash
Temporary pocket. git stash saves, git stash pop restores. Nothing is lost.
up and down
Working Directory
Files you see and edit every day. Git sees changes but they are NOT saved yet.
git add yourfile.ts
Staging Area
Files marked ready to commit. Only YOUR files should be here. Run git status to verify.
git commit -m "message"
Local Repository
Saved commits on your machine. Nobody sees these until you push. Safe to experiment here freely.
Local-only operations
rebase -i HEAD~N -- squashes only YOUR commits. Count: git rev-list --count origin/develop..HEAD
rebase onto develop -- replays your 1 clean commit on top of latest develop
checkout -- switch branches locally. Nothing goes to origin.
stash -- saves uncommitted work safely. Restore with stash pop.
Sync
->
git push
--force-with-lease after rebase
<-
git fetch
safe -- changes nothing locally
BANNED
git pull
fetch + hidden merge
BANNED
Sync button
pull + push one click
Remote Repository
All branches and commits online. PRs and code reviews happen here.
Branches on origin
origin/mvp/developnever touched directly
origin/feature/your-branchpush here
origin/feature/teammatetheir branch
What happens here
Pull Requests -- code reviews, approvals
Merge to develop -- via PR button in browser only
Squash and merge -- GitHub PR merge button squashes everything
Team visibility -- everyone sees all branches and commits
You only ever push to YOUR feature branch. To accidentally push to develop you would have to explicitly type git push origin mvp/develop which we never do.
Step Guide
Pick what you want to do, fill in your details, and follow the exact steps
What do you want to do?
FAQ
Honest answers to every question, complaint, and concern about this site.
It is just a static site with steps. What is so special about that?General
+
Static means it loads instantly, works on slow connections, never goes down because of a database crash, and requires zero login friction. The value here is not the technology stack. It is the curation: knowing which Git commands are dangerous, why they are dangerous, and exactly what to use instead.
Did you use AI to build this?General
+
The knowledge, the curation, the real-world decisions about what is dangerous vs safe in Git, the scenario coverage, the layout choices all came from genuine experience and careful thought. Even if AI assisted with any part, every professional today uses tools. The question is not what you used. It is whether it helps people. And based on the traffic this site gets, it clearly does.
What is the use where Git is not used?General
+
Git is used in virtually every software project on the planet including web apps, mobile apps, data science, DevOps, embedded systems, and game development. If you are writing code professionally and not using Git, you are the exception. This site exists for the enormous majority where Git is present every single day.
Why build this in your free time?General
+
Because some of the most impactful things ever built were built in someone's free time. Linux. Wikipedia. Countless open-source tools that now run the world. Spending free time building something that genuinely helps people is not a flaw. It is a virtue.
ChatGPT and Claude exist. Why use this?General
+
When you are mid-rebase with a conflict and your terminal is frozen, you do not want to type a prompt and wait for an AI to maybe get it right. You want a clear, pre-validated, copy-paste step sequence written by someone who has been in that exact situation. This site is focused, fast, and reliable in a way a general chat AI is not.
AI is great for explanation. This site is great for action. They serve different moments.
So many tools like this already exist. Why one more?General
+
Most Git resources are either too beginner covering only git add, commit, and push, or too academic like the full Pro Git book. Very few address the real danger zone: what not to do, why git pull is harmful on a shared branch, what the VS Code Sync button silently does. This site fills a specific gap the others miss.
The steps only cover simple tasks.General
+
The site covers squashing WIP commits, rebasing with conflicts, recovering deleted stashes, undoing pushed commits, fixing wrong-branch commits, and rescuing a branch stuck after a bad Pull or Sync. These are not beginner problems. These are the exact scenarios that trip up mid-level and senior developers every single week.
There is too much text. Nothing is understandable.General
+
Valid feedback and genuinely appreciated. The site is intentionally thorough because vague Git advice is dangerous. A missing step in a Git workflow can mean losing a teammate's code. That said, the Step Guide is built for exactly this: pick your scenario, fill in your branch names, get only the steps relevant to you.
I did not like the theme.General
+
Design taste is completely personal and that is fair. A clean, dark, distraction-free layout was a deliberate choice to keep focus on the content and reduce visual noise when you are already stressed in the middle of a Git crisis. Specific suggestions are always welcome.
Will this actually help people?General
+
It already is. Every developer who avoids a git push --force disaster, every person who finally understands why git pull creates messy histories, every teammate whose code does not get accidentally overwritten. That is real, tangible help happening right now.
The site is getting visited by developers all around the world. The help is real.
Is this entire site really just Vanilla JS?Technical
+
Yes. No React. No Vue. No Angular. No npm install. No build pipeline. No bundler. Just HTML, CSS, and plain JavaScript the way the web was designed to work. Every single line of code is readable in your browser's Inspect tab right now.
Open Inspect, go to Sources, and the entire codebase is one index.html file. Copy it. Remix it. Translate it. Optimize it. Make it yours. Zero gatekeeping.
Can I take the code and modify it?Technical
+
Absolutely. Open the Inspect tab, go to Sources, and the full source code is right there. Add your own Git scenarios, change the theme, translate it, add new rules, or turn it into something completely different. The site was built openly and intentionally left unminified so anyone can learn from it.
Please do not republish it as your own original work without attribution. A mention or a link back is appreciated. arjunc.netlify.app
Will you collect or use my data?Privacy
+
No. This site collects absolutely no personal data. There is no login system, no account creation, no analytics tracking, no form submissions, no cookies, and no third-party trackers. Everything you do on this site stays entirely in your own browser. Nothing is ever sent to any server.
You are completely anonymous on this site. Always.
Does this site use cookies or local storage?Privacy
+
No cookies are set. No local storage is written to. The site is a purely static HTML page. Once it loads in your browser, it runs entirely offline. Closing the tab leaves zero trace on any server anywhere.
Legal Disclaimer
!
Important: Please read before using this site
This website, githelp.pages.dev, is provided strictly for educational and informational purposes only. The content represents general guidance about Git version control workflows and does not constitute professional software engineering advice, legal advice, or any form of certified technical consultation.
By using this site, you acknowledge and agree that the creator of this site is not responsible, liable, or accountable for any data loss, code loss, corrupted repositories, accidental overwrites, project damage, professional consequences, financial loss, or any other outcome that results from following or misapplying the guidance provided here.
You are solely responsible for every command you run in your terminal, every Git operation you perform, and every decision you make regarding your codebase. Always verify commands against your specific project context before running them. When in doubt, take a backup first.
This site is a free, independent, personal project with no commercial affiliation. It is not affiliated with, endorsed by, or associated with Git, GitHub, GitLab, Microsoft, or any other organisation.
Applicable Laws and Frameworks
The use of this site and its content is governed by the following legal principles and frameworks depending on your jurisdiction.
Information Technology Act, 2000 (India)
Section 79 provides intermediary safe harbour. The site is a passive information provider with no editorial control over how users apply the content.
IT (Amendment) Act, 2008 (India)
Reinforces that intermediaries are not liable for third-party content or outcomes arising from information published in good faith for educational purposes.
Section 230, Communications Decency Act (USA)
Protects website operators from liability for user actions taken based on content published on the platform, provided content is published in good faith.
Digital Millennium Copyright Act, DMCA (USA)
All content on this site is original. No third-party copyrighted material is reproduced. The site complies fully with DMCA provisions.
GDPR (European Union)
No personal data is collected, stored, or processed. This site is fully GDPR compliant by design. No consent banners are required because no data is gathered.
General Disclaimer Principle (Common Law)
Under common law jurisdictions, a clear published disclaimer limits the creator's liability for outcomes resulting from use of voluntarily shared educational content.
Consumer Protection Act, 2019 (India)
This site is a free, non-commercial resource. No goods or services are sold. No warranties, express or implied, are provided for any outcome.
Electronic Commerce Directive (EU 2000/31/EC)
The site operates as a passive information society service provider. Liability is limited under Article 14 for third-party actions based on published content.