Published

GIT Tips/Tricks v2

Authors
  • avatar
    Name
    xNoJustice

Create a Repo

# Creates a local repo
git init [name]

# Clones a remote repo
git clone [remote_project_url]

Add a file or directory to the staging area

# Stage a changed file
git add [file_or_directory]

# Stage all changed files
git add .

# Stage some changes but not all changes
git add --patch [file_name]

Commit to a local repo

git commit
git commit -m "[commit_message]"

Status of Working Directory

# Status of the local repository
git status

# Changes to the file name
git diff [file_name]

Branches

# Create a new branch
git branch [new_branch_name]

# List all branches
git branch
git branch -a
git branch --list

# Switch to branch
git checkout [branch_name]
git switch [branch_name]

# Creates a new branch and switch to the branch
git switch -c [new_branch_name]
git checkout -b [new_branch_name]

# Merges a branch with another
git merge [branch_name]

# Delete a branch
git branch -d [branch_name]

# Branch newFeature has all the commits of branch main
git rebase main newFeature

Working with Remotes Repositories

# Clones a remote repo
git clone [remote_project_url]

# List all remotes repositories to the local repo
git remote -v

# Add a remote repository with local repository
git remote add [remote_project_url]

# Fetches changes from the remote repository
git fetch [remote_project_url]

# Fetches changes from the remote repository and merge it to local
git pull
git pull origin [main_branch_name]

# Publish local changes to remote repository
git push

Configuration

# List configuration options
git config --list

# Set your username
git config --global user.name "username"

# Set your email
git config --global user.email email@gmail.com

# Set your global branch names
git config --global init.defaultBranch [new_default_branch_name]

Resetting

# Revert the changes to exactly what you had
# Go back to HEAD
git reset --hard HEAD

# Go back the commit before head
git reset --head HEAD^

# Go back to two commits before head
git reset --head HEAD~2

# Revert changes to commits only
# Go back to HEAD
git reset --soft HEAD

# Go back the commit before head
git reset --soft HEAD^

# Go back to two commits before head
git reset --soft HEAD~2