Menu Close

Git Commands Summary

Managing Your Repository

  • git init → Initializes a new Git repository.
    • Example: git init my-project (Creates a Git repository in my-project).
  • git clone <url> → Creates a local copy of a remote repository.
    • Example: git clone https://github.com/user/repo.git (Copies the repository to your machine).
  • git remote add <name> <url> → Adds a remote repository reference.
    • Example: git remote add origin https://github.com/user/repo.git (Links your local repository to a GitHub repository).

Tracking Changes

  • git add . → Stages all modified files for committing.
    • Example: git add . (Prepares all changed files for commit).
  • git commit --amend -m "<message>" → Modifies the last commit message.
    • Example: git commit --amend -m "Updated commit message" (Replaces the message without creating a new commit).

Branching and Merging

  • git branch -r → Lists all remote branches.
    • Example: git branch -r (Shows branches on a remote repository).
  • git branch -m <old> <new> → Renames a branch.
    • Example: git branch -m old-branch new-branch (Renames old-branch to new-branch).
  • git merge --no-ff <branch> → Merges a branch while keeping history intact.
    • Example: git merge --no-ff feature-branch (Merges feature-branch with a full record of changes).

Undoing and Resetting Changes

  • git reset --soft HEAD~1 → Removes the last commit but keeps changes staged.
    • Example: git reset --soft HEAD~1 (Deletes the last commit but keeps changes in staging).
  • git reset --mixed HEAD~1 → Removes the last commit and unstages the changes.
    • Example: git reset --mixed HEAD~1 (Deletes the commit and moves changes back to working directory).
  • git reset --hard HEAD~1 → Removes the last commit and discards changes.
    • Example: git reset --hard HEAD~1 (Erases everything related to the last commit).

Stashing Work

  • git stash push -m "<message>" → Saves changes with a name.
    • Example: git stash push -m "Work in progress" (Stores your unfinished changes).
  • git stash list → Displays saved stashes.
    • Example: git stash list (Shows all your stored stashes).
  • git stash apply stash@{1} → Restores a specific stash.
    • Example: git stash apply stash@{1} (Brings back an earlier stash).

Tagging Releases

  • git tag -a v1.0 -m "Version 1.0 release" → Creates an annotated tag.
    • Example: git tag -a v1.0 -m "Initial release" (Adds version tracking to the repository).
  • git tag -l "v*" → Lists all tags matching a pattern.
    • Example: git tag -l "v*" (Finds all tags beginning with v).

Cleaning Up History

  • git rebase -i HEAD~4 → Rewrites the last four commits interactively.
    • Example: git rebase -i HEAD~4 (Lets you edit or reorder the last four commits).
  • git reflog → Shows every reference update, including deleted commits.
    • Example: git reflog (Displays history of all commits—even those removed).

Finding and Comparing Changes

  • git grep "<keyword>" → Searches for a keyword inside the repository.
    • Example: git grep "functionName" (Finds all occurrences of functionName).
  • git bisect start → Helps locate the commit that introduced a bug.
    • Example: git bisect start (Begins binary search for a problematic commit).
  • git bisect bad → Marks the current version as faulty.
    • Example: git bisect bad (Indicates the current commit has an issue).
  • git bisect good <commit> → Marks a specific commit as working fine.
    • Example: git bisect good abc123 (Tells Git that abc123 is a good commit).
  • git bisect reset → Ends the bisect session.
    • Example: git bisect reset (Stops the search for a problematic commit).

Working with Submodules

  • git submodule add <url> <path> → Adds a submodule inside a repository.
    • Example: git submodule add https://github.com/user/library lib/ (Adds library to the lib folder).
  • git submodule update --init --recursive → Initializes submodules.
    • Example: git submodule update --init --recursive (Ensures all submodules are downloaded).
  • git submodule foreach git pull origin main → Updates all submodules.
    • Example: git submodule foreach git pull origin main (Fetches latest changes for all submodules).

Optimizing and Cleaning Up

  • git gc --prune=now → Removes unnecessary objects and optimizes storage.
    • Example: git gc --prune=now (Cleans up the repository).
  • git fsck → Checks the repository for corruption or inconsistencies.
    • Example: git fsck (Runs a consistency check).
  • git prune → Deletes unreachable Git objects to free space.
    • Example: git prune (Cleans up orphaned data).

Leave a Reply

Your email address will not be published. Required fields are marked *