-
-
Save kulakowka/4f525007c1472e7f3613 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Set up Git Configuration */ | |
git config --global user.email "[email protected]" | |
git config --global user.name "Your Name" | |
git config --global core.editor "vi" | |
git config --global color.ui true | |
/* See Git configuration */ | |
git config --list | |
/* to initialise a local repository */ | |
git init | |
/* adds a file to the repo */ | |
git add | |
/* commit the change to git */ | |
git commit -m "Message goes here" | |
/* see the commits */ | |
git log | |
/* Git has a 3 Tier Architecture: Working - Staging Index - Respository | |
Changes to files are put in a Checksum SHA-1 hash 40digit value containing parent hash, author and message. | |
HEAD is the latest commit of the checked out branch */ | |
/* Basic Commands */ | |
git status /* the command 'git status' tells which files are not added or committed from Working to Staging to Repository */ | |
git commit -m "" /* Commits and changes to all files that are in Staging Tier into Repository */ | |
git diff /* show changes between Working and Repository, no file supplied shows all files */ | |
git diff --staged /* shows changes between Staged and Respository */ | |
git rm file.txt /* will remove file from working then git commit -m "" to also remove from Repo */ | |
git rm --cached file.txt /* leaves copy of file in Working but removes from Staging and Repo */ | |
git mv /* rename or move files - then git commit -m "" to move to Repo */ | |
git commit -am "text goes here" /* adds all files straight to Repo from Staging if they have changes - meaning they skip git add */ | |
git checkout -- file.txt /* restore Repo file to Working Directory using current branch */ | |
git reset HEAD file.txt /* Move a Stage file out of Stage back to Working */ | |
git commit --amend -m "message" file.txt /* Change last commit to Repo (only last one can change) */ | |
/* Reverting --soft --mixed --hard will go back to previous commits*/ | |
git log /* gets the sha1s so you can see the coomits where you want revert back to */ | |
git reset --soft sha /* changes Repo but not STaging or Working */ | |
git reset --mixed sha /* changes Repo and STaging but not Working */ | |
git reset --hard sha /* changes all 3 Tiers */ | |
git clean -f /* remove untracked files from Working */ | |
.gitignore /* ignores files to track in Working / track the .gitignore file */ | |
Global Ignore /* create in home folder */ | |
.gitignore_global | |
/* Add in */ | |
.DS_Store | |
.Trashes | |
.Spotlight_V100 | |
git config --global core.excludesfile ~/.gitignore_global /* add to gitconfig */ | |
/* Stop tracking changes */ | |
git rm --cached file.txt /* leaves copy in Repo and Working */ | |
/* Track Folders changes | |
Add an invisble file to a folder like .gitkeeper then add and commit */ | |
/* Commit Log */ | |
git ls-tree HEAD | |
git ls-tree master | |
git log --oneline | |
git log --author="Neil" | |
git log --grep="temp" | |
/* Show Commits */ | |
git show dc094cb /* show SHA1 */ | |
/* Compare Commits | |
Branches */ | |
git branch /* Show local branches * is the one we are on */ | |
git branch -r /* Shows remote branches */ | |
git branch -a /* Shows local and remote */ | |
git branch newbranch /* creates a new branch */ | |
git checkout newbranch /* switch to new branch */ | |
git checkout -b oldbranch /* creates and switches to new branch */ | |
/* Diff in Branches */ | |
git diff master..otherbranch /* shows diff */ | |
git diff --color-words master..otherbranch /* shows diff in color */ | |
git branch --merged /* shows any merged branches */ | |
/* Rename Branch */ | |
git branch -m oldname newname | |
/* Delete Branch */ | |
git branch -d nameofbranch | |
/* Merge Branch */ | |
git merge branchname /* be on the receiver branch */ | |
/* Merge Conflicts between the same file on 2 branches are marked in HEAD and other branch */ | |
git merge --abort /* Abort basically cancels the merge */ | |
/* Manually Fix Files and commit | |
The Stash */ | |
git stash save "text message here" | |
git stash list /* shows whats in stash */ | |
git stash show -p stash@{0} /* Show the diff in the stash */ | |
git stash pop stash@{0} /* restores the stash deletes the tash */ | |
git stash apply stash@{0} /* restores the stash and keeps the stash */ | |
git stash clear /* removes all stash */ | |
git stash drop stash@{0} | |
/* Remotes | |
You fetch from the remote server, merge any differences - then push any new to the remote - 3 branches work remote server branch, local origin master and local master | |
Create a repo in GitHub, then add that remote to your local repo */ | |
git remote add origin https://github.com/neilgee/genesischild.git /* origin can be named whatever followed by the remote */ | |
git remote /* to show all remotes */ | |
git remote show origin /*to see remote URL*/ | |
git remote remove origin /* to remove remote */ | |
git remote rm origin /* to remove remote */ | |
/* Push to Remote from Local */ | |
git push -u origin master | |
/* Cloning a GitHub Repo - create and get the URL of a new repository from GitHub, then clone that to your local repo, example below uses local repo named 'nameoffolder' */ | |
git clone https://github.com/neilgee/genesischild.git nameoffolder | |
/* Push to Remote from Local - more - since when we pushed the local to remote we used -u parameter then the remote branch is tracked to the local branch and we just need to use... */ | |
git push | |
/* Fetch changes from a cloned Repo */ | |
git fetch origin /* Pulls down latest committs to origin/master not origin, also pull down any branches pushed to Repo | |
Fetch before you work | |
Fetch before you pull | |
Fetch often */ | |
/* Merge with origin/master */ | |
git merge origin/master | |
/* git pull = git fetch + git merge | |
Checkout/Copy a remote branch to local */ | |
git branch branchname origin/branchname /* this will bring the remote branch to local and track with the remote */ | |
/* Delete branch */ | |
git branch -d branchname | |
/* Checkout and switch branch and track to remote */ | |
git checkout -b nontracking origin/nontracking | |
/* Remove remote branch */ | |
git push origin --delete branch |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment