✍️
Notes.md
  • Table of contents
  • React.Js
    • React Hooks
    • Old :- React : Using Classes
  • Blockchain
    • Solidity
    • Custom ERC20 token
    • Contract
  • Tools and Tech
    • Docker
    • Git version Control
  • Java
    • Data & Data Types
    • IO in Java
    • Data Structures
      • Array in Java
      • Collections in Java
      • Map in Java
      • Enums in Java
      • Linked List in Java
      • List in Java
      • Queues & Stacks
      • Set in Java
      • TreeSet and TreeMap
    • Object Oriented Programming
      • Object Class Methods and Constructor
      • Immutable Class & Objects
      • Constructors
      • Visibility
      • Generics
    • Threads in Java
    • Useful Stuff Java
      • Lambda & Stream
    • Keywords in Java
      • Annotations
      • Comparators
      • Packages in Java
    • Miscellaneous
    • Articles to refer to
  • Golang
    • Competitive Programming in Go
    • Testing simple web server
    • Learning Go : Part 1
    • Maps vs slices
    • Golang Garbage Collector 101
    • Things Golang do differently
    • Go Things
  • Linux
    • Shell programming
    • Linux Commands Part 1 - 4
    • Linux Commands Part 5 - 8
    • Linux Commands Part 9 - 10
  • Software Design
    • Solid Design
    • OOPS
    • Design Patterns
      • Creational Design Pattern
        • Builder DP
        • Factory DP
        • Singleton DP
      • Adapter DP
      • Bridge DP
      • Iterator DP
      • State DP
      • Strategy DP
      • Behavioral Design Pattern
        • Observer DP
      • Structural Design Pattern
        • Facade DP
  • Cloud
    • Google Cloud Platform
      • GCP Core Infrastructure
      • Cloud Networking
  • Spring Boot
    • Spring Basics
      • Spring Beans
      • Important Annotations
      • Important Spring Things
      • Maven Things
      • Spring A.O.P
    • Spring Boot Controller
      • Response Entity Exception Handling
    • Spring Things
    • Spring MVC
    • Spring Data
      • Redis
      • Spring Data JPA
      • JDBC
    • Apache Camel
  • Miscellaneous
    • Troubleshooting and Debugging
Powered by GitBook
On this page
  • Basic and Git Configuration
  • Setting your user name and email :
  • Basic Commands
  • Logging
  • Working with Remote Repositories
  • Diff & Patch
  • Patch
  • Logging details about commits
  • File Management
  • Rebase
  • Stash
  • Cherry Pick

Was this helpful?

  1. Tools and Tech

Git version Control

Basic and Git Configuration

  • version : git --version

  • git directory [ Linux ] : which git

Setting your user name and email :

  • You need to set who you are before creating any commit. That will allow commits to have the right author name and email associated to them.

$ git config --global user.name "Your Name"
$ git config --global user.email mail@example.com
  • Remove a global identity :

$ git config --global --remove-section user.name
$ git config --global --remove-section user.email

Basic Commands

  • Create an empty Git repository:

    • git init . This creates a hidden folder, .git , which contains the plumbing needed for Git to work.

  • Check status : git status

  • Adding files to staging area :

    • git add <directory/filename> [ for single file ]

    • git add . or git add --all [ for all changed files ]

  • Commit all files :

    • git commit [this opens your Git's default code editor]

  • To commit files with short message :

    • git commit -m "commit msg"

  • To add the remote location of git :

    • git remote add origin https://<your-git-service-address>/owner/repository.git

  • Cloning a Repo :

    • git clone https://github.com/username/projectname.git

  • To specify a different name of the directory, example MyFolder :

    • git clone https://github.com/username/projectname.git MyFolder

  • To clone in current directory :

    • git clone https://github.com/username/projectname.git .

  • To push your code to upstream :

    • git push --set-upstream origin main or git push origin

  • Check the remote names:

    • git remote -v

  • To get help about any command :

    • git <command> --help

  • Create alias commands :

    • git config --global alias.mylog "log --decorate --oneline --graph"

    • To run : git mylog

To see the last two commit, becoz revert doesnt delete the faulty commit, it roles back head while keeping the fault.

Logging

  • To view log :

    • git log

    • git log --stat [ for detailed view ]

  • To view log more beautifully :

    • git log --decorate --oneline --graph

  • To see commit using commit id

    • git show <commit id>

Working with Remote Repositories

  • List remote location :

    • git remote -v

  • If a remote branch has been deleted, your local repository has to be told to prune the reference to it

    • git fetch [remote-name] --prune

  • Updating from Upstream Repository

git fetch remote-name
git merge remote-name/branch-name
  • The pull command combines a fetch and a merge : git pull

  • git pull --rebase remote-name branch-name

  • Syntax for pushing to a remote branch :

    • git push <remote_name> <branch_name>

  • Rename remote :

    • git remote rename origin destination

Diff & Patch

Patch

  • In order to patch the changes

    • patch code1.js < change.diff

Logging details about commits

  • To commit all files without going through git add

    • git commit -a -m "commit message"

  • To get more details about the project

    • git log -p

  • to see patch file to another commit, we use commit id

    • git show b09ddf8a0000055f50386f1aa938f4b8a7b43b0c

  • to get stats about your commits

    • git log --stat

  • to see details while adding

    • git add -p

  • to see details on last n commit (example of 2)

    • git log -p -2

File Management

  • to rename file that is being tracked by git

    • git mv old_file_name new_file_name

  • to delete a file use :

    • git rm file_to_be_delete

  • to revert change of a file, use :

  • git checkout file_name

  • to remove a file from being tracked by git, use :

    • git reset HEAD file_name

  • to change the commit msg/ or to overwrite last commit:

    • git commit --amend

  • to revert HEAD :

    • git revert HEAD

  • to see details on last n commit (example of 2)

    • git log -p -2

Rebase

Rebase is a way in which you put all commits of a branch and add in on top of another branch ( assuming no conflicts ).

  • Command, execute this from branch to which is added on top, specify the brach on which in the command

    • git rebase [branch name to rebase onto]

Stash

  • to save to stash

    • git stash save "stash message"

  • to list stashes

    • git stash list

  • to bring back to stash

    • git stash apply stash@{0}

  • to remove the top stash

    • git stash pop

Cherry Pick

To pick one commit from another branch and then place it on top of another branch

# to cherry pick
$ git cherry-pick @commit-id

# to cherry pick but without commiting the changes
$ git cherry-pick @commit-id -n
PreviousDockerNextJava

Last updated 1 year ago

Was this helpful?

Git cheat sheet
git rebase diagram
git cherry pick