1️⃣ Git Config
git config
is used to configure Git settings at different levels: global, local, and system.
🔹 Setting User Information
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
These commands set your username and email globally for all repositories.
🔹 Checking Current Configuration
git config --list
This command displays all current configurations.
🔹 Setting Default Text Editor
git config --global core.editor "code --wait" # VS Code
git config --global core.editor "nano" # Nano Editor
🔹 Removing Configurations
git config --global --unset user.name
git config --global --unset user.email
2️⃣ Git Reflog
git reflog
is used to track the history of all references in a repository, even those that are not part of git log
.
🔹 Viewing the Reflog History
git reflog
This command shows all actions related to HEAD, including commits, resets, and checkouts.
🔹 Recovering a Lost Commit
If you accidentally reset or deleted a commit, use the commit hash from git reflog
to restore it:
git checkout
🔹 Clearing the Reflog
git reflog expire --expire=now --all
git gc --prune=now
This removes all reflog entries.
3️⃣ Git Tag
git tag
is used to mark specific commits with a label, commonly for versioning.
🔹 Creating a Lightweight Tag
git tag v1.0.0
This tags the latest commit as v1.0.0
.
🔹 Creating an Annotated Tag (with message)
git tag -a v1.0.0 -m "Version 1.0.0 release"
🔹 Listing All Tags
git tag
🔹 Deleting a Tag
git tag -d v1.0.0
🔹 Pushing Tags to Remote Repository
git push origin v1.0.0 # Push a specific tag
git push origin --tags # Push all tags
🔹 Checking Out a Tag
git checkout tags/v1.0.0
🔹 Creating a Branch from a Tag
git checkout -b new-branch v1.0.0
📌 Summary
Command | Description |
---|---|
git config --global user.name "Your Name" |
Set global username |
git config --global user.email "your.email@example.com" |
Set global email |
git config --list |
Show all configurations |
git reflog |
Show reference logs (history of HEAD movements) |
git reflog expire --expire=now --all |
Clear reflog history |
git tag v1.0.0 |
Create a lightweight tag |
git tag -a v1.0.0 -m "Version 1.0.0 release" |
Create an annotated tag |
git push origin --tags |
Push all tags to remote |