TubeTK/Development/GITCheatSheet

From KitwarePublic
< TubeTK‎ | Development
Revision as of 15:26, 9 February 2010 by Caseygoodlett (talk | contribs)
Jump to navigationJump to search

Workflow recommendation

  • Keep a local master branch which only is a pointer to the gitorious master (does not contain local changes)
  • Make development modification in a local branch
  • When getting ready to push these changes to the origin try the following
    • Do a git pull on master to fetch and merge all changes from gitorious
    • Do a git rebase of the topic branch onto master - That is with topic checkout do "git rebase master"
    • Fix any conflicts that result
    • Checkout the local master
    • Merge the topic branch - This will result in an fast-forward merge.
    • git push your local master branch

Create a checkout


Stash local changes temporarily

  • git stash

Create a local branch

  • git branch test

Swtich to a local branch

  • git checkout test

Get stashed local changes

  • git stash pop

Update a branch to the remote master's head

  • git stash
  • git rebase origin master
  • git stash pop

Add to local commit

  • git add <filename>
  • git add -A

Push local commit

  • git push origin master

Remove a local branch

  • git checkout master
  • git branch -d <branch>

Track a remote branch

  • "git fetch" (get up to date) or "git pull"
  • git branch --track somebranch origin/somebranch
    • --track is not needed unless you've set branch.autosetupmerge to false in your config
  • git checkout somebranch
  • git commit
  • git push
    • sends changes to origin/somebranch

Delete a remote branch

  • Don't do this unless you're incredibly confident in what you're doing
  • git push origin :somebranch

Project History

  • git log ( To view the history of your changes )
  • git log -p ( To see complete diffs at each step )
  • git log --stat --summary ( To see overview )

Three ways to commit to remote/master

  1. Without branching ( Good for quick changes )
  2. Branching and merging
  3. Branching and rebasing

Additional References

  • GIT tutorial [1]