Git命令快速參考 (使用git之附錄A)

1. 初始化
配置全局用戶名和電子郵件地址
git config --global user.name "Your Name"
git config --global user.email "youe@example.com"
能夠爲不用的版本庫(項目)單獨設置用戶名和郵件地址
cd /path/to/repo
git config user.name "you name"
git config user.email "you@example.com"
在命令行中使用不一樣的顏色
git config --global color.ui "auto"
初始化新版本庫
mkdir /path/to/repo
cd /path/to/repo
git init
git 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/directory
git init
git add .
git commit -m "inital import of some project."
在本地版本庫中設置遠程版本庫的別名
git remote add <remote repository> <repository url> git

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 svn

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> fetch

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~3
git 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> ui

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> url

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>
.net

相關文章
相關標籤/搜索