{"id":349,"url":"https://github.com/arslanbilal/git-cheat-sheet","last_synced_at":"2026-02-03T14:03:31.699Z","repository":{"id":18888315,"uuid":"22106110","full_name":"arslanbilal/git-cheat-sheet","owner":"arslanbilal","description":":octocat: git and git flow cheat sheet","archived":false,"fork":false,"pushed_at":"2025-07-08T09:16:11.000Z","size":892,"stargazers_count":7275,"open_issues_count":0,"forks_count":1454,"subscribers_count":135,"default_branch":"main","last_synced_at":"2026-01-25T05:40:08.753Z","etag":null,"topics":["cheatsheet","git","git-flow","github"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arslanbilal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-07-22T14:00:21.000Z","updated_at":"2026-01-25T00:32:24.000Z","dependencies_parsed_at":"2024-01-12T17:35:04.697Z","dependency_job_id":"35d7f39a-1996-4b90-bd04-ef2d71fae505","html_url":"https://github.com/arslanbilal/git-cheat-sheet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arslanbilal/git-cheat-sheet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arslanbilal%2Fgit-cheat-sheet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arslanbilal%2Fgit-cheat-sheet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arslanbilal%2Fgit-cheat-sheet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arslanbilal%2Fgit-cheat-sheet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arslanbilal","download_url":"https://codeload.github.com/arslanbilal/git-cheat-sheet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arslanbilal%2Fgit-cheat-sheet/sbom","scorecard":{"id":208711,"data":{"date":"2025-08-11","repo":{"name":"github.com/arslanbilal/git-cheat-sheet","commit":"4098de6b02a1a9ccb0f7e1eb8b6da29d91c67841"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.9,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":2,"reason":"Found 5/17 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"1 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 18 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T00:19:09.840Z","repository_id":18888315,"created_at":"2025-08-17T00:19:09.840Z","updated_at":"2025-08-17T00:19:09.840Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29043720,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T10:09:22.136Z","status":"ssl_error","status_checked_at":"2026-02-03T10:09:16.814Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cheatsheet","git","git-flow","github"],"created_at":"2024-01-05T20:12:52.583Z","updated_at":"2026-02-03T14:03:30.110Z","avatar_url":"https://github.com/arslanbilal.png","language":null,"readme":"# Git and Git Flow Cheat Sheet \n[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Git\" src=\"./Img/git-logo.png\" height=\"190\" width=\"455\"\u003e\n\u003c/p\u003e\n\n---\n\n## 📖 About\n\nThis comprehensive Git cheat sheet helps you master Git commands without memorizing everything. Whether you're a beginner or an experienced developer, this guide provides quick reference to essential Git operations.\n\n**Contributions Welcome!** Feel free to:\n- Fix grammar mistakes\n- Add new commands\n- Translate to your language\n- Improve explanations\n\n---\n## 📋 Table of Contents\n\n- [🔧 Setup](#-setup)\n- [⚙️ Configuration Files](#️-configuration-files)\n- [🆕 Create Repository](#-create-repository)\n- [📝 Local Changes](#-local-changes)\n- [🔍 Search](#-search)\n- [📖 Commit History](#-commit-history)\n- [📁 Move / Rename](#-move--rename)\n- [🌿 Branches \u0026 Tags](#-branches--tags)\n- [🔄 Update \u0026 Publish](#-update--publish)\n- [🔀 Merge \u0026 Rebase](#-merge--rebase)\n- [↩️ Undo](#️-undo)\n- [🌊 Git Flow](#-git-flow)\n- [🌍 Other Languages](#-other-languages)\n\n---\n\n## 🔧 Setup\n\n### View Configuration\n\n**Show current configuration:**\n```bash\ngit config --list\n```\n\n**Show repository configuration:**\n```bash\ngit config --local --list\n```\n\n**Show global configuration:**\n```bash\ngit config --global --list\n```\n\n**Show system configuration:**\n```bash\ngit config --system --list\n```\n\n### User Configuration\n\n**Set your name for version history:**\n```bash\ngit config --global user.name \"[firstname lastname]\"\n```\n\n**Set your email address:**\n```bash\ngit config --global user.email \"[valid-email]\"\n```\n\n### Display \u0026 Editor Settings\n\n**Enable automatic command line coloring:**\n```bash\ngit config --global color.ui auto\n```\n\n**Set global editor for commits:**\n```bash\ngit config --global core.editor vi\n```\n\n---\n\n## ⚙️ Configuration Files\n\n| Scope | Location | Command Flag |\n|-------|----------|--------------|\n| **Repository** | `\u003crepo\u003e/.git/config` | `--local` |\n| **User** | `~/.gitconfig` | `--global` |\n| **System** | `/etc/gitconfig` | `--system` |\n\n---\n\n## 🆕 Create Repository\n\n### Clone Existing Repository\n\n**Via SSH:**\n```bash\ngit clone ssh://user@domain.com/repo.git\n```\n\n**Via HTTPS:**\n```bash\ngit clone https://domain.com/user/repo.git\n```\n\n### Initialize New Repository\n\n**Create repository in current directory:**\n```bash\ngit init\n```\n\n**Create repository in specific directory:**\n```bash\ngit init \u003cdirectory\u003e\n```\n\n---\n\n## 📝 Local Changes\n\n### Check Status \u0026 Differences\n\n**View working directory status:**\n```bash\ngit status\n```\n\n**Show changes to tracked files:**\n```bash\ngit diff\n```\n\n**Show changes in specific file:**\n```bash\ngit diff \u003cfile\u003e\n```\n\n### Staging Changes\n\n**Add all current changes:**\n```bash\ngit add .\n```\n\n**Add specific files:**\n```bash\ngit add \u003cfilename1\u003e \u003cfilename2\u003e\n```\n\n**Interactively add parts of a file:**\n```bash\ngit add -p \u003cfile\u003e\n```\n\n### Committing Changes\n\n**Commit all tracked file changes:**\n```bash\ngit commit -a\n```\n\n**Commit staged changes:**\n```bash\ngit commit\n```\n\n**Commit with message:**\n```bash\ngit commit -m 'message here'\n```\n\n**Skip staging and commit with message:**\n```bash\ngit commit -am 'message here'\n```\n\n**Commit with specific date:**\n```bash\ngit commit --date=\"`date --date='n day ago'`\" -am \"\u003cCommit Message Here\u003e\"\n```\n\n### Modify Last Commit\n\n\u003e ⚠️ **Warning:** Don't amend published commits!\n\n**Amend last commit:**\n```bash\ngit commit -a --amend\n```\n\n**Amend without changing commit message:**\n```bash\ngit commit --amend --no-edit\n```\n\n**Change committer date:**\n```bash\nGIT_COMMITTER_DATE=\"date\" git commit --amend\n```\n\n**Change author date:**\n```bash\ngit commit --amend --date=\"date\"\n```\n\n### Stashing Changes\n\n**Save current changes temporarily:**\n```bash\ngit stash\n```\n\n**Apply last stashed changes:**\n```bash\ngit stash apply\n```\n\n**Apply specific stash:**\n```bash\ngit stash apply stash@{stash_number}\n```\n\u003e Use `git stash list` to see available stashes\n\n**Remove last stash:**\n```bash\ngit stash drop\n```\n\n**Move uncommitted changes to another branch:**\n```bash\ngit stash\ngit checkout branch2\ngit stash pop\n```\n\n---\n\n## 🔍 Search\n\n### Text Search\n\n**Search for text in all files:**\n```bash\ngit grep \"Hello\"\n```\n\n**Search in specific version:**\n```bash\ngit grep \"Hello\" v2.5\n```\n\n### Commit Search\n\n**Find commits that introduced specific keyword:**\n```bash\ngit log -S 'keyword'\n```\n\n**Search with regular expression:**\n```bash\ngit log -S 'keyword' --pickaxe-regex\n```\n\n---\n\n## 📖 Commit History\n\n### Basic History\n\n**Show all commits (detailed):**\n```bash\ngit log\n```\n\n**Show commits (one line each):**\n```bash\ngit log --oneline\n```\n\n**Show commits by specific author:**\n```bash\ngit log --author=\"username\"\n```\n\n**Show changes for specific file:**\n```bash\ngit log -p \u003cfile\u003e\n```\n\n### Advanced History\n\n**Compare branches:**\n```bash\ngit log --oneline \u003corigin/master\u003e..\u003cremote/master\u003e --left-right\n```\n\n**Show who changed what and when:**\n```bash\ngit blame \u003cfile\u003e\n```\n\n### Reference Logs\n\n**Show reference log:**\n```bash\ngit reflog show\n```\n\n**Delete reference log:**\n```bash\ngit reflog delete\n```\n\n---\n\n## 📁 Move / Rename\n\n**Rename a file:**\n```bash\ngit mv Index.txt Index.html\n```\n\n---\n\n## 🌿 Branches \u0026 Tags\n\n### List Branches\n\n**List local branches:**\n```bash\ngit branch\n```\n\n**List all branches (local + remote):**\n```bash\ngit branch -a\n```\n\n**List remote branches:**\n```bash\ngit branch -r\n```\n\n**List merged branches:**\n```bash\ngit branch --merged\n```\n\n### Switch \u0026 Create Branches\n\n**Switch to existing branch:**\n```bash\ngit checkout \u003cbranch\u003e\n```\n\n**Create and switch to new branch:**\n```bash\ngit checkout -b \u003cbranch\u003e\n```\n\n**Switch to previous branch:**\n```bash\ngit checkout -\n```\n\n**Create branch from existing branch:**\n```bash\ngit checkout -b \u003cnew_branch\u003e \u003cexisting_branch\u003e\n```\n\n**Create branch from specific commit:**\n```bash\ngit checkout \u003ccommit-hash\u003e -b \u003cnew_branch_name\u003e\n```\n\n**Create branch without switching:**\n```bash\ngit branch \u003cnew-branch\u003e\n```\n\n**Create tracking branch:**\n```bash\ngit branch --track \u003cnew-branch\u003e \u003cremote-branch\u003e\n```\n\n### Branch Operations\n\n**Checkout single file from different branch:**\n```bash\ngit checkout \u003cbranch\u003e -- \u003cfilename\u003e\n```\n\n**Apply specific commit from another branch:**\n```bash\ngit cherry-pick \u003ccommit hash\u003e\n```\n\n**Rename current branch:**\n```bash\ngit branch -m \u003cnew_branch_name\u003e\n```\n\n**Delete local branch:**\n```bash\ngit branch -d \u003cbranch\u003e\n```\n\n**Force delete local branch:**\n```bash\ngit branch -D \u003cbranch\u003e\n```\n\u003e ⚠️ **Warning:** You will lose unmerged changes!\n\n### Tags\n\n**Create tag at HEAD:**\n```bash\ngit tag \u003ctag-name\u003e\n```\n\n**Create annotated tag:**\n```bash\ngit tag -a \u003ctag-name\u003e\n```\n\n**Create tag with message:**\n```bash\ngit tag \u003ctag-name\u003e -am 'message here'\n```\n\n**List all tags:**\n```bash\ngit tag\n```\n\n**List tags with messages:**\n```bash\ngit tag -n\n```\n\n---\n\n## 🔄 Update \u0026 Publish\n\n### Remote Management\n\n**List configured remotes:**\n```bash\ngit remote -v\n```\n\n**Show remote information:**\n```bash\ngit remote show \u003cremote\u003e\n```\n\n**Add new remote:**\n```bash\ngit remote add \u003cremote\u003e \u003curl\u003e\n```\n\n**Rename remote:**\n```bash\ngit remote rename \u003cremote\u003e \u003cnew_remote\u003e\n```\n\n**Remove remote:**\n```bash\ngit remote rm \u003cremote\u003e\n```\n\u003e ℹ️ **Note:** This only removes the remote reference locally, not the remote repository itself.\n\n### Fetch \u0026 Pull\n\n**Download changes without merging:**\n```bash\ngit fetch \u003cremote\u003e\n```\n\n**Download and merge changes:**\n```bash\ngit pull \u003cremote\u003e \u003cbranch\u003e\n```\n\n**Get changes from main branch:**\n```bash\ngit pull origin master\n```\n\n**Pull with rebase:**\n```bash\ngit pull --rebase \u003cremote\u003e \u003cbranch\u003e\n```\n\n### Push \u0026 Publish\n\n**Publish local changes:**\n```bash\ngit push \u003cremote\u003e \u003cbranch\u003e\n```\n\n**Delete remote branch:**\n```bash\n# Git v1.7.0+\ngit push \u003cremote\u003e --delete \u003cbranch\u003e\n\n# Git v1.5.0+\ngit push \u003cremote\u003e :\u003cbranch\u003e\n```\n\n**Publish tags:**\n```bash\ngit push --tags\n```\n\n---\n\n## 🔀 Merge \u0026 Rebase\n\n### Merge Operations\n\n**Merge branch into current HEAD:**\n```bash\ngit merge \u003cbranch\u003e\n```\n\n**Configure merge tool globally:**\n```bash\ngit config --global merge.tool meld\n```\n\n**Use configured merge tool:**\n```bash\ngit mergetool\n```\n\n### Rebase Operations\n\n\u003e ⚠️ **Warning:** Don't rebase published commits!\n\n**Rebase current HEAD onto branch:**\n```bash\ngit rebase \u003cbranch\u003e\n```\n\n**Abort rebase:**\n```bash\ngit rebase --abort\n```\n\n**Continue rebase after resolving conflicts:**\n```bash\ngit rebase --continue\n```\n\n### Conflict Resolution\n\n**Mark file as resolved:**\n```bash\ngit add \u003cresolved-file\u003e\n```\n\n**Remove resolved file:**\n```bash\ngit rm \u003cresolved-file\u003e\n```\n\n### Squashing Commits\n\n**Interactive rebase for squashing:**\n```bash\ngit rebase -i \u003ccommit-just-before-first\u003e\n```\n\n**Example squash configuration:**\n```\n# Before\npick \u003ccommit_id\u003e\npick \u003ccommit_id2\u003e\npick \u003ccommit_id3\u003e\n\n# After (squash commit_id2 and commit_id3 into commit_id)\npick \u003ccommit_id\u003e\nsquash \u003ccommit_id2\u003e\nsquash \u003ccommit_id3\u003e\n```\n\n---\n\n## ↩️ Undo\n\n### Discard Changes\n\n**Discard all local changes:**\n```bash\ngit reset --hard HEAD\n```\n\n**Unstage all files:**\n```bash\ngit reset HEAD\n```\n\n**Discard changes in specific file:**\n```bash\ngit checkout HEAD \u003cfile\u003e\n```\n\n### Reset Operations\n\n**Reset to previous commit (discard all changes):**\n```bash\ngit reset --hard \u003ccommit\u003e\n```\n\n**Reset to remote branch state:**\n```bash\ngit reset --hard \u003cremote/branch\u003e\n# Example: git reset --hard upstream/master\n```\n\n**Reset preserving changes as unstaged:**\n```bash\ngit reset \u003ccommit\u003e\n```\n\n**Reset preserving uncommitted local changes:**\n```bash\ngit reset --keep \u003ccommit\u003e\n```\n\n### Revert Commits\n\n**Revert commit (create new commit with opposite changes):**\n```bash\ngit revert \u003ccommit\u003e\n```\n\n### Clean Ignored Files\n\n**Remove accidentally committed files that should be ignored:**\n```bash\ngit rm -r --cached .\ngit add .\ngit commit -m \"remove ignored files\"\n```\n\n---\n\n## 🌊 Git Flow\n\n**Improved Git-flow:** [git-flow-avh](https://github.com/petervanderdoes/gitflow-avh)\n\n### 📋 Table of Contents\n- [🔧 Setup](#setup-1)\n- [🚀 Getting Started](#getting-started)\n- [✨ Features](#features)\n- [🎁 Make a Release](#make-a-release)\n- [🔥 Hotfixes](#hotfixes)\n- [📊 Commands Overview](#commands-overview)\n\n---\n\n### 🔧 Setup {#setup-1}\n\n\u003e **Prerequisite:** Working Git installation required. Git-flow works on macOS, Linux, and Windows.\n\n**macOS (Homebrew):**\n```bash\nbrew install git-flow-avh\n```\n\n**macOS (MacPorts):**\n```bash\nport install git-flow\n```\n\n**Linux (Debian-based):**\n```bash\nsudo apt-get install git-flow\n```\n\n**Windows (Cygwin):**\n\u003e Requires wget and util-linux\n```bash\nwget -q -O - --no-check-certificate https://raw.githubusercontent.com/petervanderdoes/gitflow/develop/contrib/gitflow-installer.sh install \u003cstate\u003e | bash\n```\n\n---\n\n### 🚀 Getting Started\n\nGit-flow needs initialization to customize your project setup.\n\n**Initialize (interactive):**\n```bash\ngit flow init\n```\n\u003e You'll answer questions about branch naming conventions. Default values are recommended.\n\n**Initialize (use defaults):**\n```bash\ngit flow init -d\n```\n\n---\n\n### ✨ Features\n\nFeatures are for developing new functionality for upcoming releases. They typically exist only in developer repositories.\n\n**Start new feature:**\n```bash\ngit flow feature start MYFEATURE\n```\n\u003e Creates feature branch based on 'develop' and switches to it\n\n**Finish feature:**\n```bash\ngit flow feature finish MYFEATURE\n```\n\u003e This will:\n\u003e 1. Merge MYFEATURE into 'develop'\n\u003e 2. Remove the feature branch\n\u003e 3. Switch back to 'develop'\n\n**Publish feature (for collaboration):**\n```bash\ngit flow feature publish MYFEATURE\n```\n\n**Get published feature:**\n```bash\ngit flow feature pull origin MYFEATURE\n```\n\n**Track origin feature:**\n```bash\ngit flow feature track MYFEATURE\n```\n\n---\n\n### 🎁 Make a Release\n\nReleases support preparation of new production releases, allowing minor bug fixes and preparing meta-data.\n\n**Start release:**\n```bash\ngit flow release start RELEASE [BASE]\n```\n\u003e Creates release branch from 'develop'. Optionally specify [BASE] commit SHA-1.\n\n**Publish release:**\n```bash\ngit flow release publish RELEASE\n```\n\n**Track remote release:**\n```bash\ngit flow release track RELEASE\n```\n\n**Finish release:**\n```bash\ngit flow release finish RELEASE\n```\n\u003e This will:\n\u003e 1. Merge release branch into 'master'\n\u003e 2. Tag the release\n\u003e 3. Back-merge release into 'develop'\n\u003e 4. Remove release branch\n\n\u003e 💡 **Don't forget:** Push your tags with `git push --tags`\n\n---\n\n### 🔥 Hotfixes\n\nHotfixes address critical issues in live production versions. They branch off from the corresponding tag on master.\n\n**Start hotfix:**\n```bash\ngit flow hotfix start VERSION [BASENAME]\n```\n\n**Finish hotfix:**\n```bash\ngit flow hotfix finish VERSION\n```\n\u003e Merges back into both 'develop' and 'master', and tags the master merge\n\n---\n\n### 📊 Commands Overview\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Git Flow Commands\" src=\"./Img/git-flow-commands.png\" height=\"270\" width=\"460\"\u003e\n\u003c/p\u003e\n\n### 🌊 Git Flow Schema\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Git Flow Schema\" src=\"Img/git-flow-commands-without-flow.png\"\u003e\n\u003c/p\u003e\n\n---\n\n\n## 🌍 Other Languages\n\nThis cheat sheet is available in multiple languages:\n\n| Language | Link |\n|----------|------|\n| 🇸🇦 Arabic | [git-cheat-sheet-ar.md](./other-sheets/git-cheat-sheet-ar.md) |\n| 🇧🇩 Bengali | [git-cheat-sheet-bn.md](./other-sheets/git-cheat-sheet-bn.md) |\n| 🇧🇷 Brazilian Portuguese | [git-cheat-sheet-pt_BR.md](./other-sheets/git-cheat-sheet-pt_BR.md) |\n| 🇨🇳 Chinese | [git-cheat-sheet-zh.md](./other-sheets/git-cheat-sheet-zh.md) |\n| 🇩🇪 German | [git-cheat-sheet-de.md](./other-sheets/git-cheat-sheet-de.md) |\n| 🇬🇷 Greek | [git-cheat-sheet-el.md](./other-sheets/git-cheat-sheet-el.md) |\n| 🇮🇳 Hindi | [git-cheat-sheet-hi.md](./other-sheets/git-cheat-sheet-hi.md) |\n| 🇰🇷 Korean | [git-cheat-sheet-ko.md](./other-sheets/git-cheat-sheet-ko.md) |\n| 🇵🇱 Polish | [git-cheat-sheet-pl.md](./other-sheets/git-cheat-sheet-pl.md) |\n| 🇪🇸 Spanish | [git-cheat-sheet-es.md](./other-sheets/git-cheat-sheet-es.md) |\n| 🇹🇷 Turkish | [git-cheat-sheet-tr.md](./other-sheets/git-cheat-sheet-tr.md) |\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! You can:\n\n- 🐛 Report bugs or typos\n- ✨ Add new Git commands\n- 🌍 Translate to new languages\n- 💡 Improve explanations\n- 📝 Enhance formatting\n\n**How to contribute:**\n1. Fork this repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n---\n\n## 📄 License\n\nThis project is open source and available under the [MIT License](LICENSE).\n\n---\n\n\u003cp align=\"center\"\u003e\n    \u003cb\u003e⭐ Star this repository if you found it helpful!\u003c/b\u003e\n\u003c/p\u003e\n\n","funding_links":[],"categories":["Programming","Development Environment","Technical","Tutorial","Others","开发环境","[Programming]","Read more","miscellaneous","Resources","Uncategorized","Developer Environment","Tools","Live Site:   [searchAwesome](https://search-awesome.vercel.app/)","Git (General)","VCS","📋 Cheatsheets","Basic Concepts","Development:","Git Commands and Terminology","[Git](https://git-scm.com/)","Themed Directories"],"sub_categories":["[Programming] - [Git]","ramanihiteshc@gmail.com","Uncategorized","git \u0026 GitHub","GIT \u0026 versioning","Linux \u0026 Git","Git","Misc"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farslanbilal%2Fgit-cheat-sheet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farslanbilal%2Fgit-cheat-sheet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farslanbilal%2Fgit-cheat-sheet/lists"}