Skip to content
Chase Sterling edited this page Mar 14, 2014 · 2 revisions

Git Tips

PageOutline(2,Tips,inline)

This page is a collection of useful git tips.

Merge a feature branch

In this example we assume that your feature branch, myfeature, is based off develop and that you are currently in your feature branch.

  1. Squash/reword/edit any commits if need be
git rebase -i develop
  1. Rebase your feature branch on top of current develop
git rebase develop
  1. Change to develop
git checkout develop
  1. Fast-forward merge your feature branch into develop
git merge myfeature
  1. Delete your local feature branch (see above tip for remote deletion)
git branch -d myfeature

Ignore changes in a tracked file

To ignore:

git update-index --assume-unchanged <tracked-file>

To stop ignoring:

git update-index --no-assume-unchanged <ignored-tracked-file>

Undo the last commit

Changes are put back into staged

git reset --soft HEAD~1

Delete the last commit

_All changes are lost! _

git reset --hard HEAD~1

Stash untracked files

At times you will be working on a branch with untracked files (new files) and you'll need to checkout master to apply a bug fix.

First, add the untracked files to the index:

git add <untracked-files>

Now do a regular stash:

git stash

At this point you can checkout whatever branch you want and do what you need to do. When you're done, checkout your original working branch again and pop the changes from your stash:

git stash pop

You can remove the files you indexed from the index if you want, as to not pollute your next commit:

git rm --cached <files>

Merge a remote branch

First, add the repo:

git remote add <reponame> <location>

Now fetch in the changes:

git fetch <reponame>

You'll want to do a diff against your branch to see what will be merged:

git diff master <reponame>/<branch>

If you're happy with the changes, go ahead and merge it:

git merge <reponame>/<branch>

Delete a remote branch

git push <repo> :<branch>

or

git push --delete <repo> <branch>

Apply a commit to multiple branches with cherry-pick

This technique uses cherry-pick to apply commits to branches that differ too much to use merge.

  1. Checkout master branch
git checkout master
  1. Make commit
git commit -m "Fixed the bug that caused issue xyz"
  1. Checkout stable branch
git checkout stable
  1. Apply the last commit from master to this branch
git cherry-pick master
Clone this wiki locally