Git - Tips and Tricks

Git Auto Completion

Help - git help command

Cache Git Authentication
git config --global credential.helper 'cache --timeout 72000'
git credential-osxkeychain erase

Git Config
git config --get core.editor
git config --global core.editor vi
git config --global your-email

Push to a Remote Branch with a Different Name
git push origin local-name:remote-name

Make an existing Git branch track a remote branch
git branch -u upstream/foo foo

Disable push to remote branch
git remote set-url --push remote-name DISABLE
git branch --unset-upstream

List what remote branch your current branch is tracking
git branch -vv or just git status

-- This will list what branch  git fetch --dry-run

git fetch -p 
-p, --prune After fetching, remove any remote-tracking branches which no longer exist on the remote.

git branch -d[D] the_local_branch
Temporarily ignoring files
git update-index --assume-unchanged file-path
git update-index --no-assume-unchanged file-path
Get a list of files marked --assume-unchanged:
git ls-files -v|grep '^h'

Git Diff
git diff --name-only  -- *.java
git diff --cached

Compare files from different branches
git diff branch1:branch2 file-path
git diff ..branch2 file-path

git diff branch2.. file-path

Viewing Unpushed Git Commits
git diff origin/master..HEAD

Change commit message:
git commit --amend -m ”YOUR-NEW-COMMIT-MESSAGE”

git add -A - stages All
git add .    - stages new and modified, without deleted

git add -u  - stages modified and deleted, without new

Git reset
Reset committed file:
git reset file

Undo add
git reset

Undo last commit
git reset --soft HEAD~

Replace local file with file from remote another branch
git checkout remote/branch -- a/file (seems we can ignore --)

Delete Local Branch:
git branch -D branch-name
Delete remote branch:
git push origin --delete branch-name

Git Log
By amount - show last 3 commits only
git log -3

git log --author=abc
git log -S "search-term"
git log file
git log -Ssearch-term -p
Search for the regex in the diff of each commit
git log -G'regx'

git grep -n something

Show all of the commits that are in branchA, but aren’t the master
git log master..branchA

View unpushed commits
git log origin/master..HEAD
git diff origin/master..HEAD

Checkout file from another branch
git checkout branch2 filePath
Checkout file from remote brnach
git checkout origin/master filePath Create a branch from a tag
git checkout -b newbranch theTag

git format-patch master --stdout > a.patch
git apply --stat a.patch
git apply --check a.patch

No one shall rebase a shared branch

- We can stash change and apply it in another branch
git stash
git stash list

git stash drop stash@{0}

Git commands
Merge code from another remote branch to current local branch
git pull origin remote-branch-name

Find who made the change
Find any commit that added or removed the string 
git log -Sthe-query

gitk filePath
Get a file from a specific commit
git show commitHash:/path/to/file - show whole file content in that commit
git show commitHash /path/to/file - show changes only

Searching - link
in:path, in:file

Use split diff view to compare PR and commits

Compare changes between tags/branches{username}/{repo}/compare/{older-tag}...{newer-tag}

Ignore Whitespace in pull request
Adding ?w=1 to any diff URL will remove any changes only in whitespace, enabling you to see only that code that has changed.

press ? to show all shortcuts
Pressing t will bring up a file explorer.
Pressing s will focus the search field for the current repository. Pressing Backspace to delete the “This repository” to search all of GitHub.
Pressing w will bring up the branch selector.

octotree : Chrome extensio to display GitHub code in tree format

Expand all "outdated diff" comments in a GitHub pull request
Run in chrome dev console:
elements = document.getElementsByClassName("outdated-diff-comment-container");
for (var i=0; i<elements.length; i++) { elements[i].className += " open"; }

Sort user and organization repositories by star count on the repositories tab and org home page

URL to create a pull request between different two branches

Close pull request without merging

Revert Pull Request

Post a Comment


Java (159) Lucene-Solr (110) All (60) Interview (59) J2SE (53) Algorithm (37) Eclipse (35) Soft Skills (35) Code Example (31) Linux (26) JavaScript (23) Spring (22) Windows (22) Web Development (20) Tools (19) Nutch2 (18) Bugs (17) Debug (15) Defects (14) Text Mining (14) J2EE (13) Network (13) PowerShell (11) Chrome (9) Continuous Integration (9) How to (9) Learning code (9) Performance (9) UIMA (9) html (9) Design (8) Dynamic Languages (8) Http Client (8) Maven (8) Security (8) Trouble Shooting (8) bat (8) blogger (8) Big Data (7) Google (7) Guava (7) JSON (7) Problem Solving (7) ANT (6) Coding Skills (6) Database (6) Scala (6) Shell (6) css (6) Algorithm Series (5) Cache (5) IDE (5) Lesson Learned (5) Miscs (5) Programmer Skills (5) System Design (5) Tips (5) adsense (5) xml (5) AIX (4) Code Quality (4) GAE (4) Git (4) Good Programming Practices (4) Jackson (4) Memory Usage (4) OpenNLP (4) Project Managment (4) Python (4) Spark (4) Testing (4) ads (4) regular-expression (4) Android (3) Apache Spark (3) Become a Better You (3) Concurrency (3) Eclipse RCP (3) English (3) Firefox (3) Happy Hacking (3) IBM (3) J2SE Knowledge Series (3) JAX-RS (3) Jetty (3) Restful Web Service (3) Script (3) regex (3) seo (3) .Net (2) Android Studio (2) Apache (2) Apache Procrun (2) Architecture (2) Batch (2) Build (2) Building Scalable Web Sites (2) C# (2) C/C++ (2) CSV (2) Career (2) Cassandra (2) Distributed (2) Fiddler (2) Google Drive (2) Gson (2) Html Parser (2) Http (2) Image Tools (2) JQuery (2) Jersey (2) LDAP (2) Life (2) Logging (2) Software Issues (2) Storage (2) Text Search (2) xml parser (2) AOP (1) Application Design (1) AspectJ (1) Bit Operation (1) Chrome DevTools (1) Cloud (1) Codility (1) Data Mining (1) Data Structure (1) ExceptionUtils (1) Exif (1) Feature Request (1) FindBugs (1) Greasemonkey (1) HTML5 (1) Httpd (1) I18N (1) IBM Java Thread Dump Analyzer (1) JDK Source Code (1) JDK8 (1) JMX (1) Lazy Developer (1) Mac (1) Machine Learning (1) Mobile (1) My Plan for 2010 (1) Netbeans (1) Notes (1) Operating System (1) Perl (1) Problems (1) Product Architecture (1) Programming Life (1) Quality (1) Redhat (1) Redis (1) Review (1) RxJava (1) Solutions logs (1) Team Management (1) Thread Dump Analyzer (1) Troubleshooting (1) Visualization (1) boilerpipe (1) htm (1) ongoing (1) procrun (1) rss (1)

Popular Posts