Since TrinityCore moved to git, I think this commands will be useful for all users. If you have some interesting commands, tricks or solutions for non-standard tasks - please, share.
Download sources:
git clone git://github.com/TrinityCore/TrinityCore.git
Download sources in custom folder:
git clone git://github.com/TrinityCore/TrinityCore.git <folder_name>
Update sources for up-to-date version:
git pull origin master
Show all branches (local + remote):
git branch -a
Download sources from specific branch:
[CODE]git clone git://github.com/TrinityCore/TrinityCore.git
git checkout -b origin/<remote_branch>[/CODE]Create new branch:
git branch <branch>
Show current branch:
git branch
Switch branch:
git checkout <branch>
Show modifications - usually used when you commit something to your repo:
git status
Show differences between two branches:
[CODE]git diff <branch_1>…<branch_2>
git diff master…
git diff (diff with master)[/CODE]Create patch from modified sources:
git diff > <patch_name>.patch
Create patch from different branches:
[CODE]git diff master -p > <patch_name>.patch
git diff master > <patch_name>.patch[/CODE]Create patch from different commits:
[CODE]git diff <commit_hash_1> <commit_hash_2> > <patch_name>.patch
git diff 719ffeb414c97e09469b 52cd2cbd7eb62648ae13 > <patch_name>.patch[/CODE]Apply patch to sources:
git apply < <patch_name>.patch
Apply patch to sources with creating of new files:
patch -p1 < <patch_name>.patch
Revert applied patch:
patch -p1 -R < <patch_name>.patch
Add all modifications to sources:
git add *
Add single modifications to sources:
git add <file_name>
Create commit:
git commit -a -m "<description>"
Create commit with author:
git commit --author="name <[email protected]>" -m "<description>"
Show log changes:
[CODE]git log
git log --format=oneline[/CODE]Advanced log view:
[CODE]git log --oneline --author/commiter=
git log --since/after/before/until=
git log --pretty=format:
git log --summary
git log --stat
git log --help[/CODE]Revert all changes in source code:
git reset --hard
Remove all except original source files:
git clean -f -x -d
Switch to master branch:
git checkout master
Delete specific branch:
git branch <branch> -D
Download specific revision of sources (for example 10 revisions below):
[CODE]git clone git://github.com/TrinityCore/TrinityCore.git
cd ./TrinityCore
git checkout master
git reset HEAD~10[/CODE]Switch to specific revision 1. Find commit’s hash for specific revision:
git log --grep=Core/DBLayer
2. Find needed commit’s hash. Like this one:
[CODE]…
commit 70a45be1594c43e09f7103c910f11a0476f88b52
…[/CODE]3. Revert to specific revision with creation of new branch “DBLayer”:
git checkout -b DBLayer 70a45be1594c43e09f7103c910f11a0476f88b52
Undo last push to your remote repository:
git push -f origin HEAD^:master
or
[CODE]git rebase -i origin/~1
git rebase --abort
git push origin +
vim → delete everything and type: noop[/CODE]Get all commits from specific one like patch files:
git format-patch --full-index 52499b03ea8c86ab536c2025c3629b8883f591f2
Get cherry-pick patch from remote repository:
git log --reverse --pretty=tformat:'git cherry-pick %h # %s' | grep "\[patch"
Merge remote branch to your repository:
[CODE]git clone [email protected]:/TrinityCore.git <folder_name>
cd ./<folder_name>
git remote add -f -t master -m master upstream <remote_repository>
git merge upstream/master[/CODE]Download remote fork to local repository:
[CODE]git remote add upstream git://github.com//TrinityCore.git
git fetch upstream
git checkout -b upstream/<remote_branch>
git pull upstream <remote_branch>[/CODE]
Credits goes to ru-mangos community, google and github help topics =]