Difference between revisions of "Git"
Line 22: | Line 22: | ||
Reset working copy: | Reset working copy: | ||
<pre> | <pre> | ||
− | git clean - | + | git clean -fdx |
git checkout . | git checkout . | ||
</pre> | </pre> |
Revision as of 06:41, 5 January 2013
See also: Git-svn
Contents
Commands I keep forgetting
Un-stage (inverse of add):
git reset file
Update workspace (works for github): (Or better still, use rebase pattern described below.)
git fetch git merge origin/master
Tags:
git push --tags
Reset working copy:
git clean -fdx git checkout .
Branches
Take uncommitted changes to a new branch.
git checkout -b new_branch
Switch branches:
git checkout existing_branch
Reset branch
git fetch origin git reset --hard origin/master
Get branch from remote workspace:
git remote add hostdesu ssh://user@hostdesu/Users/user/development/projectdesu
Pull remote branch and check out:
git checkout --track origin/branch_name
Rebase pattern
TODO: personally test this sequence.
Check out branch we want to (eventually) deliver to. Double check its all up to date.
git checkout desuapp-codefoo git pull
Create new branch and check out.
git checkout -b task101
- ( Do actual work, make commits, etc. )
Update local copy of branch we want to deliver to.
git fetch origin
Do the magic rebase thing - rewrite history and send current target branch back in time.
git rebase origin/desuapp-codefoo
Switch to the branch we want to deliver to and get it up to date.
git checkout desuapp-codefoo git pull
Bring over our work in to the local copy of the delivery target branch.
git rebase task101
- ( Verify the differences between local and remote copies )
Send it out into the big wide world with the happy satisfaction of a job well done.
git push
Remove directory from history
git filter-branch --tree-filter 'rm -rf com.example.foo' HEAD rm -rf .git/refs/original/ rm -rf .git/logs/ git reflog expire --expire=now --all git gc --prune=now git gc --aggressive --prune=now git push --force
References
Merge / Rebase
- http://stackoverflow.com/questions/804115/git-rebase-vs-git-merge
- A Rebase Workflow for Git
- Intro to rebase
- Avoiding Git Disasters