Git命令快速參考(使用git之附錄A) 1. 初始化配置全域使用者名稱和電子郵件地址git config --global user.name "Your Name"git config --global user.email "youe@example.com"可以為不用的版本庫(項目)單獨設定使用者名稱和郵件地址cd /path/to/repogit config user.name "you name"git config user.email "you@example.com"在命令列中使用不同的顏色git config --global color.ui "auto"初始化新版本庫mkdir /path/to/repocd /path/to/repogit initgit add .git commit -m "inital import"複製版本庫git clone <repository url>git clone http://git.oschina.net/oschina/git-osc.git將目錄中的內容納入Git版本控制cd /path/to/existing/directorygit initgit add .git commit -m "inital import of some project."在本地版本庫中設定遠程版本庫的別名git remote add <remote repository> <repository url> 2. 日常操作git add <some file>git commit -m "<some file message>"暫存已有檔案上的部分修改git add -p [<some file>[<some file>[and so on]]]使用互動式添加檔案git add -i暫存已納入Git版本控制之下的檔案的修改git add -u [<some path>[<some path>]]提交納入Git版本控制之下的檔案修改git commit -m "some message" -a清除工作目錄數的一些修改git checkout HEAD <some file>[<some file>]取消已暫存但尚未提交的暫存標識git reset HEAD <some file>[<some file>]修複上一次提交中的問題修改檔案並暫存git commit -m "some message" --amend修複上一次提交中的問題,並有上次的提交注釋git commit -C HEAD --amend 3. 分支列出本地分支git branch列出遠程分支git branch -r列出所有分支git branch -a基於當前分支(的末梢)建立新分支git branch <new branch>檢出另一條分支git checkout <some branch>基於當前分支建立新分支並檢出該分支git checkout -b <new branch>基於另一起點建立新分支git branch <new branch> <start point>建立同名新分支,覆蓋已有分支git branch -f <some exitsing branch> [start point]移動和重新命名分支git checkout -m <exitsing branch> <new branch name>把另一條分支合并到當前分支git merge <some branch>命並但不提交git merge --no-commit <some branch>揀選合并並提交git cherry-pick <commit name>揀選合并但不提交git cherry-pick -n <commit name>把一打分支上的內容壓合(壓縮合并)到另一條分支(上一個提交)git merge --squash <some branch>刪除分支git branch -d <branch to delete>不論是否已合并都刪除某分支git branch -D <branch to delete> 4. 曆史顯示全部曆史git log顯示版本曆史以及版本間的內容差異git log -p只顯示最近3個提交git log -3顯示最近20個提交以及版本間的內容差異git log -20 -p顯示最近6小時的提交git log --since="6 hours"git log --before="2 days"顯示HEAD(當前檢出分支的末梢)早3個提交的那個提交git log -1 HEAD~3git log -1 HEAD^^^或者git log -1 HEAD~1^^顯示兩個版本之間的提交git log <start point> <end point>顯示曆史,每個提交顯示一行,包括提交的注釋的第一行git log --pretty=oneline顯示改動檔案的名稱和狀態git log --name-status顯示當前工作目錄樹和暫存區間的差別git diff顯示暫存區和版本庫之間的差別git diff --cached顯示當前工作目錄樹和版本庫中某次版本之間的差別git diff HEAD顯示工作目錄與版本庫中某次提交版本之間的差別git diff <start point>顯示版本庫中兩個版本之間的差別git diff <start point> <end point>顯示差別相關的統計git diff --stat <start point> <end point>顯示檔案中各個部分的修改者及相關提交資訊git blame <some file> 和git blame -M <some file>顯示檔案中各部分的修改及相關的提交資訊,包括在檔案間的移動內容方面的情況git blame -C -c <some file>顯示曆史時,顯示複製和粘貼資訊git log -C -c -p -1 <some point> 5. 遠程版本庫複製遠程版本庫git clone <some repository url>複製遠程版本庫,但只下載其中最近200個提交的記錄git clone --depth 200 <some repository url>在本地版本庫中設定遠程版本庫的別名git remote add <remote repository> <repository url>顯示遠程分支git branch -r基於遠程分支建立本地分支git branch <new branch> <remote branch>基於遠程標籤建立本地分支git branch <new branch> <remote tag>從別名Origin的遠程版本庫中取來修改變化,但不合并到本地分支git fetch從任意的遠程版本庫中取來修改變化,但不合并到本地分支git fetch <remote repository>從任意的遠程版本庫中取來修改變化,併合併到當前檢出的本地分支git pull <remote repository>從別名為"Origin"的遠程版本庫中取來修改變化,併合併到當前的檢出本地分支git pull把修改變化從本地分支推入遠程版本庫git push <remote repository> <local branch>:<remote branch>把修改變化從本地分支推入到遠程本庫同名分支git push <remote repository> <local branch>把修改變化從票地建立分支推入到遠程本庫git push <remote repository> <local branch>把修改變化推入別名為"Origin"的遠程本庫git push在遠程版本庫中刪除分支git push <remote repository> :<remeote branch>在本地版本庫中刪除所有遠程版本庫中已不存在的分支git remote prune <remote repository>在本地版本庫中刪除某個遠程版本庫的簡稱,以及該遠程本庫相關的分支git remote rm <remote repository> 6. 串連Git 和 SVN複製SVN版本庫的全部內容git svn clone <svn repository>複製具有標準結構的SVN版本庫(主幹命名為trunk 其它都在branches目錄下)git svn clone -s <svn repository>複製非標準結構的svn版本庫git svn clone -T <trunk path> -b <branch path> -t <tag path> <svn repository>複製標準結構的SVN中的版本庫的某個版本git svn clone -s -r 2321複製具有標準結構的SVN版本庫,並對SVN中的分支添加首碼git svn clone -s --prefix svn/ <svn repository>從上遊SVN版本庫中獲得更新內容,並依此在本地GIT版本庫中基變本地分支git svn rebase把修改變化推回上遊SVN版本庫git svn dcommit列出所有推入上遊SVN版本庫的提交git svn dcommit -n顯示svn記錄git svn log顯示檔案中各個部分的svn的修改者及相關的提交資訊git svn blame <some file>