TubeTK/Development/GITCheatSheet: Difference between revisions
From KitwarePublic
< TubeTK | Development
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
= 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 = | = Create a checkout = | ||
* git clone git://gitorious.org/tubetk/tubetk.git | * git clone git://gitorious.org/tubetk/tubetk.git |
Revision as of 15:26, 9 February 2010
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
- git clone git://gitorious.org/tubetk/tubetk.git
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
- Without branching ( Good for quick changes )
- Branching and merging
- Branching and rebasing
Additional References
- GIT tutorial [1]