GIT Cheatsheet: Difference between revisions

From UNIX Systems Administration
Jump to navigation Jump to search
No edit summary
No edit summary
Line 8: Line 8:


==== Initialize a new git Repository ====
==== Initialize a new git Repository ====
*:<tt>'''cd into directory to be added to the repository'''</tt>
:<tt>'''cd into directory to be added to the repository'''</tt>
*:<tt>'''git init'''</tt>
:<tt>'''git init'''</tt>
*:<tt>'''git add -A'''</tt>
:<tt>'''git add -A'''</tt>
*:<tt>'''git commit -m "Repository Initialization"'''</tt>
:<tt>'''git commit -m "Repository Initialization"'''</tt>
*:<tt>'''git remote add origin ssh:<url>'''</tt>
:<tt>'''git remote add origin ssh:<url>'''</tt>
*:<tt>'''git push origin master'''</tt>
:<tt>'''git push origin master'''</tt>


* Cloning a Remote Repository
==== Cloning a Remote Repository ====
*:<tt>'''git clone ssh:<url> <src/.>'''</tt>
:<tt>'''git clone ssh:<url> <src/.>'''</tt>
*:<tt>'''git remote -v'''</tt>
:<tt>'''git remote -v'''</tt>
*:<tt>'''git branch -a'''</tt>
:<tt>'''git branch -a'''</tt>


* Creating Branches
==== Creating Branches ====
*:<tt>'''git branch <branch name>'''</tt>
:<tt>'''git branch <branch name>'''</tt>
*:<tt>'''git checkout <branch name>'''</tt>
:<tt>'''git checkout <branch name>'''</tt>
*:<tt>'''git branch'''</tt>
:<tt>'''git branch'''</tt>


* Merging Branches
==== Merging Branches
*:<tt>'''git checkout master'''</tt>
:<tt>'''git checkout master'''</tt>
*:<tt>'''git pull origin master'''</tt>
:<tt>'''git pull origin master'''</tt>
*:<tt>'''git branch --merged'''</tt>
:<tt>'''git branch --merged'''</tt>
*:<tt>'''git merge <branch>'''</tt>
:<tt>'''git merge <branch>'''</tt>
*:<tt>'''git push origin master'''</tt>
:<tt>'''git push origin master'''</tt>


* Deleting a Branch
==== Deleting a Branch ====
*:<tt>'''git branch --merged'''</tt>
:<tt>'''git branch --merged'''</tt>
*:<tt>'''git branch -d <branch to delete>'''</tt>
:<tt>'''git branch -d <branch to delete>'''</tt>
*:<tt>'''git branch -a'''</tt>
:<tt>'''git branch -a'''</tt>
*:<tt>'''git push origin --delete <branch to delete>'''</tt>
:<tt>'''git push origin --delete <branch to delete>'''</tt>


* Update a file
==== Update a file ====
*:<tt>'''git add <file>'''</tt>
:<tt>'''git add <file>'''</tt>
*:<tt>'''git commit -m "Description of changes"'''</tt>
:<tt>'''git commit -m "Description of changes"'''</tt>
*:<tt>'''git push'''</tt>
:<tt>'''git push'''</tt>


* Commiting & Pushing Changes
==== Commiting & Pushing Changes ====
*:<tt>'''git diff'''</tt>
:<tt>'''git diff'''</tt>
*:<tt>'''git status'''</tt>
:<tt>'''git status'''</tt>
*:<tt>'''git add -A'''</tt>
:<tt>'''git add -A'''</tt>
*:<tt>'''git commit -m "<message>"'''</tt>
:<tt>'''git commit -m "<message>"'''</tt>
*:<tt>'''git pull origin <branch>'''</tt>
:<tt>'''git pull origin <branch>'''</tt>
*:<tt>'''git push origin <branch>'''</tt>
:<tt>'''git push origin <branch>'''</tt>


* Remove files from repository keep local
==== Remove files from repository keep local ====
*:<tt>'''git rm --cached <file>'''</tt>
:<tt>'''git rm --cached <file>'''</tt>
*:<tt>'''git commit -m "Description of changes"'''</tt>
:<tt>'''git commit -m "Description of changes"'''</tt>
*:<tt>'''git push'''</tt>
:<tt>'''git push'''</tt>


* List files in repository
==== List files in repository ====
*:<tt>'''git ls-files'''</tt>
:<tt>'''git ls-files'''</tt>


* Revert to previous version (pre commit)
==== Revert to previous version (pre commit) ====
*:<tt>'''git checkout <filename>'''</tt>
:<tt>'''git checkout <filename>'''</tt>
*:<tt>'''git status'''</tt>
:<tt>'''git status'''</tt>
*:<tt>'''git diff'''</tt>
:<tt>'''git diff'''</tt>


* Fix commit message
==== Fix commit message ====
*:<tt>'''git commit --ammend -m "<message>"'''</tt>
:<tt>'''git commit --ammend -m "<message>"'''</tt>


* Add a file as a part of previous commit
==== Add a file as a part of previous commit ====
*:<tt>'''git commit --ammend'''</tt>
:<tt>'''git commit --ammend'''</tt>


Move commits to another branch
Move commits to another branch
Line 77: Line 77:
         git cherry-pick <hash>
         git cherry-pick <hash>


* Remove the commit from the original branch (soft reset), removing commits but keeping staging directory in branch
==== Remove the commit from the original branch (soft reset), removing commits but keeping staging directory in branch ====
*:<tt>'''git checkout <original branch>'''</tt>
:<tt>'''git checkout <original branch>'''</tt>
*:<tt>'''git log'''</tt>
:<tt>'''git log'''</tt>
*:<tt>'''git reset --soft <hash of correct commit>'''</tt>
:<tt>'''git reset --soft <hash of correct commit>'''</tt>
*:<tt>'''git status'''</tt>
:<tt>'''git status'''</tt>


* Remove the commit from the original branch (mixed reset), removing commits and files in staging directory in branch
==== Remove the commit from the original branch (mixed reset), removing commits and files in staging directory in branch ====
*:<tt>'''git checkout <original branch>'''</tt>
:<tt>'''git checkout <original branch>'''</tt>
*:<tt>'''git reset <hash>'''</tt>
:<tt>'''git reset <hash>'''</tt>
*:<tt>'''git status'''</tt>
:<tt>'''git status'''</tt>


* Remove the commit from the original branch (hard reset), removing commits and tracked files entirely in branch
==== Remove the commit from the original branch (hard reset), removing commits and tracked files entirely in branch ====
*:<tt>'''git checkout <original branch>'''</tt>
:<tt>'''git checkout <original branch>'''</tt>
*:<tt>'''git reset --hard <hash>'''</tt>
:<tt>'''git reset --hard <hash>'''</tt>
*:<tt>'''git status'''</tt>
:<tt>'''git status'''</tt>


* Remove Untracked Directories and Files
==== Remove Untracked Directories and Files ====
*:<tt>'''git clean -df'''</tt>
:<tt>'''git clean -df'''</tt>
*:<tt>'''git status'''</tt>
:<tt>'''git status'''</tt>

Revision as of 18:48, 2 April 2026

GIT Cheatsheet

Initial setup git Global Configuration Variables

These configuration variables are stored in ~/.gitconfig
git config --global user.name "<user>"
git config --global user.email "<email>"
git config --list

Initialize a new git Repository

cd into directory to be added to the repository
git init
git add -A
git commit -m "Repository Initialization"
git remote add origin ssh:<url>
git push origin master

Cloning a Remote Repository

git clone ssh:<url> <src/.>
git remote -v
git branch -a

Creating Branches

git branch <branch name>
git checkout <branch name>
git branch

==== Merging Branches

git checkout master
git pull origin master
git branch --merged
git merge <branch>
git push origin master

Deleting a Branch

git branch --merged
git branch -d <branch to delete>
git branch -a
git push origin --delete <branch to delete>

Update a file

git add <file>
git commit -m "Description of changes"
git push

Commiting & Pushing Changes

git diff
git status
git add -A
git commit -m "<message>"
git pull origin <branch>
git push origin <branch>

Remove files from repository keep local

git rm --cached <file>
git commit -m "Description of changes"
git push

List files in repository

git ls-files

Revert to previous version (pre commit)

git checkout <filename>
git status
git diff

Fix commit message

git commit --ammend -m "<message>"

Add a file as a part of previous commit

git commit --ammend

Move commits to another branch

       Get Hash
               git log
       git checkout <branch>
       git cherry-pick <hash>

Remove the commit from the original branch (soft reset), removing commits but keeping staging directory in branch

git checkout <original branch>
git log
git reset --soft <hash of correct commit>
git status

Remove the commit from the original branch (mixed reset), removing commits and files in staging directory in branch

git checkout <original branch>
git reset <hash>
git status

Remove the commit from the original branch (hard reset), removing commits and tracked files entirely in branch

git checkout <original branch>
git reset --hard <hash>
git status

Remove Untracked Directories and Files

git clean -df
git status