# show config options
git config --list # show all
git config --global --list # show only global
git config --local --list # show only local
# --global option impacts options at a global level
# --local option impacts options at a local level (.git/config)
# set username/email associated with client
git config --global user.email "joe@example.com"
git config --global user.name "Joe Jaz"
# add color syntax highlighting
git config --global color.status auto
git config --global color.branch auto
# set default pager and editor
git config --global core.editor vim # or set the GIT_EDITOR environment variable
git config --global core.pager less # or set the GIT_PAGER environment variable
# display an option value
git config group.value
git config user.name
Start a new repository and import:
# In the root folder to add to version control:
git init
git init --bare # creates a new repository (with no working copy)
git add . # add everything in directory to repo
git commit -m 'initial commit'
Making commits:
# commit specific files
git commit file1 file2 -m 'comment'
# commit all 'added' files
git commit -a -m 'comment'
# change a commit message
git commit --amend -m 'New Message'
Create new repository by cloning existing one:
git clone --bare . path_or_url_to_git_dir.git
Setting the remote repository (to push and pull from):
git remote add short_name path_or_url_to_git_dir.git
git remote add origin git://github.com/imagescape/iscape-authlog.git
Show remote repositories available:
git remote
git remote -v # show the url
git remote show origin # show detail information about origin
Remove a remote repository:
git remove repo_name
Rename a remote repository:
git rename old_repo_name new_repo_name
Push and Pull from remote repository:
git push origin # push recent commits to remote repository called "origin"
git pull origin # pull updates from origin
Revert changes in working copy:
git clean -n
git clean --dry-run
Show file differences:
git diff # show differences between working copy and any files staged for commit
git diff --staged # compares staged changes with last commit
git diff --cached # same as above for git older than 1.6.1
git difftool -t [meld|kdiff3|vimdiff|etc.] [diff criteria]
git difftool -t meld --staged
git difftool --tool=meld --staged
git difftool origin/master --dir-diff # use difftool to diff entire dir tree
git diff -U999999999 master.. -- file.txt # shows the full file.txt, with diff markup, in the master/branch diff results
git diff --name-status brancha..branchb # shows list of changed files
Show File/s History:
git log filename # Show single file versions
# Show number of lines changed in file/s
git log -stat filename # single file
git log -stat # multiple files
# show log summaries on one line
git log --pretty=oneline # Pre-defined format
git log --pretty=format:"%h - %cD (%an) %s" # custom format (see below)
git log --pretty=format:"%h %s" --graph
git log --graph --full-history --all --color \
--pretty=format:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s"
Pre-Defined Pretty formats:
oneline
short
medium
full
fuller
email
raw
format:string # where string is
Pre-Defined Pretty formats:
oneline
short
medium
full
fuller
raw
format:string # where string is
Format Strings
%H: commit hash
%h: abbreviated commit hash
%T: tree hash
%t: abbreviated tree hash
%P: parent hashes
%p: abbreviated parent hashes
%an: author name
%aN: author name (respecting .mailmap, see git-shortlog(1) or git-blame(1))
%ae: author email
%aE: author email (respecting .mailmap, see git-shortlog(1) or git-blame(1))
%ad: author date (format respects --date= option)
%aD: author date, RFC2822 style
%ar: author date, relative
%at: author date, UNIX timestamp
%ai: author date, ISO 8601 format
%cn: committer name
%cN: committer name (respecting .mailmap, see git-shortlog(1) or git-blame(1))
%ce: committer email
%cE: committer email (respecting .mailmap, see git-shortlog(1) or git-blame(1))
%cd: committer date
%cD: committer date, RFC2822 style
%cr: committer date, relative
%ct: committer date, UNIX timestamp
%ci: committer date, ISO 8601 format
%d: ref names, like the --decorate option of git-log(1)
%e: encoding
%s: subject
%f: sanitized subject line, suitable for a filename
%b: body
%B: raw body (unwrapped subject and body)
%N: commit notes
%gD: reflog selector, e.g., refs/stash@{1}
%gd: shortened reflog selector, e.g., stash@{1}
%gs: reflog subject
%Cred: switch color to red
%Cgreen: switch color to green
%Cblue: switch color to blue
%Creset: reset color
%C(…): color specification, as described in color.branch.* config option
%m: left, right or boundary mark
%n: newline
%%: a raw %
%x00: print a byte from a hex code
%w([[,[,]]]): switch line wrapping, like the -w option of git-shortlog(1).
Show git branches available:
git branch
Show all branches including remote branches:
git branch -a
Create new branch:
git branch new_branch
Change branches:
git checkout new_branch
Delete branch:
git branch -d new_branch # delete only if all changes are merged
git branch -D new_branch # delete even if there are unmerged changes
Merge branch into current copy:
git merge --no-ff branch_to_merge_in
Resolve a Merge:
1) Edit file to resolve
2) git add conflict_file
3) git commit
Using Mergetool
git mergetool
git mergetool --tool=meld
git mergetool -t meld
Abort a merge conflict before committing:
git merge --abort
Undo a Merge: # restores state to pre-merge
git reset --heard HEAD
Undo a local commit:
git reset --soft HEAD^
Find the commit where two branches diverge:
git merge-base branch1 branch2
http://stackoverflow.com/questions/1549146/find-common-ancestor-of-two-branches
Find what branches were merged into a given branch:
git branch --merged master # local branches only
git branch -a --merged master # local and remote branches
Find what branches were NOT merged into a given branch:
git branch --no-merged master # local branches only
git branch -a --no-merged master # local and remote branches
Find what branches are merged into develop, but not master:
comm -12 <(sort <(git branch -a --no-merged origin/master)) <(sort <(git branch -a --merged origin/develop))
https://stackoverflow.com/questions/8071079/git-list-branches-merged-into-a-branch-but-not-into-another
Copy all branches from origin to new_remote:
git push new_remote refs/remotes/origin/*:refs/heads/*
Get number of commits per author
apt-get install git-extras
%H: commit hash
%h: abbreviated commit hash
%T: tree hash
%t: abbreviated tree hash
%P: parent hashes
%p: abbreviated parent hashes
%an: author name
%aN: author name (respecting .mailmap, see git-shortlog(1) or git-blame(1))
%ae: author email
%aE: author email (respecting .mailmap, see git-shortlog(1) or git-blame(1))
%ad: author date (format respects --date= option)
%aD: author date, RFC2822 style
%ar: author date, relative
%at: author date, UNIX timestamp
%ai: author date, ISO 8601 format
%cn: committer name
%cN: committer name (respecting .mailmap, see git-shortlog(1) or git-blame(1))
%ce: committer email
%cE: committer email (respecting .mailmap, see git-shortlog(1) or git-blame(1))
%cd: committer date
%cD: committer date, RFC2822 style
%cr: committer date, relative
%ct: committer date, UNIX timestamp
%ci: committer date, ISO 8601 format
%d: ref names, like the --decorate option of git-log(1)
%e: encoding
%s: subject
%f: sanitized subject line, suitable for a filename
%b: body
%B: raw body (unwrapped subject and body)
%N: commit notes
%gD: reflog selector, e.g., refs/stash@{1}
%gd: shortened reflog selector, e.g., stash@{1}
%gs: reflog subject
%Cred: switch color to red
%Cgreen: switch color to green
%Cblue: switch color to blue
%Creset: reset color
%C(…): color specification, as described in color.branch.* config option
%m: left, right or boundary mark
%n: newline
%%: a raw %
%x00: print a byte from a hex code
%w([[,[,]]]): switch line wrapping, like the -w option of git-shortlog(1).
Show git branches available:
git branch
Show all branches including remote branches:
git branch -a
Create new branch:
git branch new_branch
Change branches:
git checkout new_branch
Delete branch:
git branch -d new_branch # delete only if all changes are merged
git branch -D new_branch # delete even if there are unmerged changes
Merge branch into current copy:
git merge --no-ff branch_to_merge_in
Resolve a Merge:
1) Edit file to resolve
2) git add conflict_file
3) git commit
Using Mergetool
git mergetool
git mergetool --tool=meld
git mergetool -t meld
Abort a merge conflict before committing:
git merge --abort
Undo a Merge: # restores state to pre-merge
git reset --heard HEAD
Undo a local commit:
git reset --soft HEAD^
Find the commit where two branches diverge:
git merge-base branch1 branch2
http://stackoverflow.com/questions/1549146/find-common-ancestor-of-two-branches
Find what branches were merged into a given branch:
git branch --merged master # local branches only
git branch -a --merged master # local and remote branches
Find what branches were NOT merged into a given branch:
git branch --no-merged master # local branches only
git branch -a --no-merged master # local and remote branches
Find what branches are merged into develop, but not master:
comm -12 <(sort <(git branch -a --no-merged origin/master)) <(sort <(git branch -a --merged origin/develop))
https://stackoverflow.com/questions/8071079/git-list-branches-merged-into-a-branch-but-not-into-another
Copy all branches from origin to new_remote:
git push new_remote refs/remotes/origin/*:refs/heads/*
Get number of commits per author
apt-get install git-extras
git summary -n
References:
http://jonas.nitro.dk/git/quick-reference.html
http://www.vogella.de/articles/Git/article.html#git_stagingindex
http://book.git-scm.com/3_basic_branching_and_merging.html
http://stackoverflow.com/questions/1838873/visualizing-branch-topology-in-git
http://stackoverflow.com/questions/226976/how-can-i-know-in-git-if-a-branch-has-been-already-merged-into-master
http://stackoverflow.com/questions/7818927/git-push-branch-from-one-remote-to-another
References:
http://jonas.nitro.dk/git/quick-reference.html
http://www.vogella.de/articles/Git/article.html#git_stagingindex
http://book.git-scm.com/3_basic_branching_and_merging.html
http://stackoverflow.com/questions/1838873/visualizing-branch-topology-in-git
http://stackoverflow.com/questions/226976/how-can-i-know-in-git-if-a-branch-has-been-already-merged-into-master
http://stackoverflow.com/questions/7818927/git-push-branch-from-one-remote-to-another
6 comments:
Thanks to Admin for Sharing such useful Information. I really like your Blog. Addition to your Story here I am Contributing 1 more Similar Story Common used Git Commands Checklist for Developers.
Great article. Thanks for sharing it with us.
DevOps Online Training institute
DevOps Online Training in Hyderabad
DevOps Course in Hyderabad
Thanks for providing a useful article containing valuable information. start learning the best online software courses.
DevOps Training in Bangalore | Certification | Online Training Course institute | DevOps Training in Hyderabad | Certification | Online Training Course institute | DevOps Training in Coimbatore | Certification | Online Training Course institute | DevOps Online Training | Certification | Devops Training Online
it is actually a capably investigated content and super phrasing. I were given consequently connected on this texture that I couldnt stand by considering. i'm intrigued while your capability and dogfight out-stroke. much appreciated. Avast VPN Activation Code
I gather that is an enlightening make seen and it's miles concurred critical and learned. thusly, I could related with to thank you for the moves which you have made recorded as a printed duplicate this text. the substance material is all around that truly matters, incredibly examined. much appreciation to you... Spyhunter Crack Keygen
You make it look like it's easy to blog. Both the layout and the content of your website are great!
GstarCAD Pro
Post a Comment