git-cheat-sheet.webp

Git Cheat Sheet

Creating or cloning a Repository git init Initializes a new Git repository in the current directory git clone https://git[.]johnpili[.]com/path/to/repo.git Clones a repository using HTTPS protocol from a remote location git clone ssh://git[.]johnpili[.]com/path/to/repo.git Clones a repository using SSH protocol from a remote location git clone git://git[.]johnpili[.]com/path/to/repo.git Clones a repository using Git protocol from a remote location git clone ~/handler Clones a local repository from the home directory’s handler folder git clone –branch feature/query-loader https://git[.]johnpili[.]com/path/to/repo.git Clones a specific branch (feature/query-loader) from a remote repository Staging Area git status Shows the status of files in the working directory and staging area git add main.go Adds the specific file ‘main.go’ to the staging area git add . Adds all new and modified files in the current directory to the staging area git add environment Adds the ’environment’ directory or file to the staging area git rm main.go Removes ‘main.go’ from both the working directory and staging area git mv config.xml environment Moves ‘config.xml’ to the ’environment’ directory and stages the change git mv config.xml dev-config.xml Renames ‘config.xml’ to ‘dev-config.xml’ and stages the change git reset Unstages all files, keeping the working directory unchanged git reset main.go Unstages the specific file ‘main.go’, keeping the working directory unchanged git diff config.xml Shows unstaged changes in ‘config.xml’ compared to the staging area Commits: Creating Snapshots git commit Opens default editor to write a commit message and create a new commit git commit -m “Initial commit” Creates a new commit with the specified message without opening an editor git commit -am “Message” Stages all modified tracked files and commits them with the specified message git commit –amend Modifies the last commit by adding staged changes and/or editing the commit message git tag -a v2025.1 ef5bb78 -m “Release version 2025.1” Creates an annotated tag for commit ef5bb78 with a specified message without editor git tag Lists all tags in the repository Commit Logs git log Shows commit history with full commit messages git log -3 Shows only the last 3 commits git log –stat Shows commit history with files changed and number of modifications git log –before=“2025-01-21” Shows commits made before January 21, 2025. The Date formats in and are flexible (e.g., “2025-01-21”, “3 days ago”, “yesterday”) git log –after=“2025-01-15” Shows commits made after January 15, 2025 git log -p main.go Shows commit history with patches (changes) for main.go file git log –grep “Camunda” Shows commits whose message contains the word “Camunda”. --grep is case-sensitive by default; use -i flag for case-insensitive search git diff ef5bb78 ab0c0df Shows differences between two specific commits git show ab0c0df Shows details of a specific commit (changes, message, author, etc.) git show ab0c0df main.go Shows changes made to main.go file in the specific commit Branching git branch Lists all local branches (* marks current branch) git branch feature/user-login Creates a new branch named ‘feature/user-login’ at current position git checkout feature/query-loader Switches to existing branch ‘feature/query-loader’ git checkout -b feature/query-loader Creates and switches to new branch ‘feature/query-loader’ git switch -c feature/query-loader A modern alternative to git checkout.Creates and switches to new branch ‘feature/query-loader’ git branch -m feature/backdoor Renames current branch to ‘feature/backdoor’ git merge develop Merges ‘develop’ branch into current branch git branch -d feature/backdoor Deletes branch ‘feature/backdoor’ (if fully merged) git branch -D feature/backdoor Forces deletion of branch ‘feature/backdoor’ (even if not merged) git diff feature/query-loader develop Shows differences between ‘feature/query-loader’ and ‘develop’ branches git diff feature/query-loader main.go Shows changes to main.go file in ‘feature/query-loader’ vs current branch git branch –merged Lists branches merged into current branch git branch –no-merged Lists branches not yet merged git branch -v Shows last commit on each branch git branch -r Lists remote branches git branch -a Lists all branches (local and remote) git log –graph –all Shows commit history of all branches with ASCII graph visualization git log –graph –all –oneline A compact visualization of --graph Rebase git rebase develop Reapplies your current branch’s commits on top of the develop branch git rebase –abort Cancels an in-progress rebase and returns to the state before rebase started git rebase –continue Continues the rebase process after resolving conflicts git rebase -i Opens interactive rebase mode, allowing you to modify, reorder, or squash commits Important: Rebasing rewrites commit history, so it should generally be avoided on commits that have been pushed to shared repositories unless you’re absolutely sure about the implications. ...

April 27, 2025