Coder Social home page Coder Social logo

git-cheatsheet's Introduction

Personal Git Cheatsheet

Initializing an empty git repository.

git init # Initialize an empty git repository under current directory.

Cloning a repository

git clone https://github.com/praqma-training/git-katas.git # Clone this repository to your current working directory

Git (user and repo level) configurations

git config --local user.name "Repo-level Username" # For setting a local git repo level user name. git config --local user.email "[email protected]" # For setting a local git repo level user email.

--global -> User level git config stored in /.gitconfig for e.g. ~/.gitconfig

--local -> repo level config stored in repo's main dir under .git/config

See local changes

git status # Show the working tree status git diff # Show changes current working directory (not yet staged) git diff --cached # Show changes currently staged for commit

Add files to staging (before a commit)

git add myfile.txt # Add myfile.txt to stage git add . # Add entire working directory to stage

Make a commit

git commit # Make a new commit with the changes in your staging area. This will open an editor for a commit message. git commit -m "I love documentation" # Make a new commit with a commit message from the command line git commit -a # Make a new commit and automatically "add" changes from all known files git commit -am "I still do!" # A combination of the above git commit --amend # Re-do the commit message of the previous commit (don't do this after pushing!)

We never change "public history"

git reset # Unstage a staged file leaving in working directory without losing any changes. git reset --soft [commit_hash] # resets the current branch to . Does not touch the staging area or the working tree at all.

--hard mode would discard all changes.

Configuring a different editor

Avoid Vim but stay in terminal:

  • git config --global core.editor nano

For Windows:

  • Use Notepad: git config --global core.editor notepad

  • or for instance Notepad++: git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

See history

git log # Show commit logs git log --oneline # Formats commits to a single line (shorthand for --pretty=oneline --abbrev-commit ) git log --graph # Show a graph commits and branches git log --pretty=fuller # To see commit log details with author and committer details, if any different. git log --follow # List the history of a file beyond renames git log branch2..branch1 # Show commits reachable from branch1 but not from branch2

Deferring

git stash # Stash (store temporarily) changes in working branch and enable checkingout a new branch git stash list # List stored stashes. git stash apply # Apply given , or if none given the latest from stash list.

Working with Branches

git branch my-branch # Create a new branch called my-branch git switch my-branch # Switch to a different branch to work on it git switch -c my-branch # Create a new branch called my-branch AND switch to it git branch -d my-branch # Delete branch my-branch that has been merged with master git branch -D my-branch # Forcefully delete a branch my-branch that hasn't been merged to master

Merging

git merge master # Merge the master branch into your currently checked out branch. git rebase master # Rebase current branch on top of master branch

Working with Remotes

git remote # Show your current remotes git remote -v # Show your current remotes and their URLs git push # Publish your commits to the upstream master of your currently checked out branch git push -u origin my-branch # Push newly created branch to remote repo setting up to track remote branch from origin.

No need to specify remote branch name, for e.g., when doing a 'git pull' on that branch.

git pull # Pull changes from the remote to your currently checked out branch

Re/moving files under version control

git rm <path/to/the/file> # remove file and stage the change to be committed. git mv <source/file> <destination/file> # move/rename file and stage the change to be committed.

Aliases - it's possible to make aliases of frequently used commands

This is often done to make a command shorter, or to add default flags

Adding a shorthand "sw" for "switch"

git config --global alias.sw "switch"

Usage:

git sw master # Does a "git switch master"

Logging

git log --graph --oneline --all # Show a nice graph of the previous commits

Adding an alias called "lol" (log oneline..) that shows the above

git config --global alias.lol "log --graph --oneline --all"

Using the alias

git lol # Does a "git log --graph --oneline --all"

git-cheatsheet's People

Contributors

muugen avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.