歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Git 常用命令速查表

配置

  • $ git config --global user.name "John Doe"
  • $ git config --global user.email [email protected]

創建版本庫

  • $ git clone [url] #克隆遠程版本庫
  • $ git clone git://github.com/schacon/grit.git
  • $ git clone git://github.com/schacon/grit.git mygrit
  • $ git clone --bare my_project my_project.git #創建純倉庫
  • $ git init #初始化本地版本庫
  • $ git init --bare #創建純倉庫

修改和提交

  • $ git status #查看狀態
  • $ git diff #查看變更內容
  • $ git diff --cached #查看已經暫存起來的文件和上次提交時的快照之間的差異
  • $ git diff master...contrib #特性分支contrib和它同master分支的共同祖先之間的差異(合並時實際將要引入的新代碼)
  • $ git add . #跟蹤所有改動過的文件
  • $ git add [file] #跟蹤指定的文件
  • $ git mv [old] [new] #文件改名
  • $ git rm [file] #刪除文件
  • $ git rm --cached [file] #停止跟蹤文件但不刪除
  • $ git commit -m "commit message" #提交所有更新過的文件
  • $ git commit --amend #修改最後一次提交
  • $ git commit -a -m 'added new benchmarks' #跳過暫存區域直接提交

查看提交歷史

  • $ git log #查看提交歷史
  • $ git log --pretty=oneline
  • $ git log -p [file] #查看指定文件的提交歷史
  • $ git log master..experiemnt #所有可從experiment分支中獲得而不能從master分支中獲得的提交
  • $ git blame [file] #以列表方式查看指定文件的提交歷史
  • $ git log origin/featureA ^featureA #比較origin/featureA及featureA分支,查看origin/featureA更新了哪些內容

撤消

  • $ git reset --hard HEAD #撤消工作目錄中所有未提交文件的修改內容
  • $ git reset --hard [commit] #會退到某個[commit]
  • $ git reset HEAD [file] #取消已經暫存的文件
  • $ git checkout HEAD [file] #撤消指定的未提交文件的修改內容[已暫存]
  • $ git checkout -- benchmarks.rb #取消對文件的修改[未暫存]
  • $ git revert [commit] #撤消指定的提交

分支與標簽

  • $ git branch #顯示所有本地分支
  • $ git checkout [branch/tag] #切換到指定分支或標簽
  • $ git checkout -b featureB origin/master #從分支origin/master克隆並創建分支featureB,切換至featureB
  • $ git branch [new-branch] #創建新分支
  • $ git branch sc/ruby_client master #從master分支克隆一個sc/ruby_client分支
  • $ git branch -d [branch] #刪除本地分支
  • $ git branch --merged #查看哪些分支已被並入當前分支
  • $ git branch --no-merged #查看哪些分支未被並入當前分支
  • $ git tag #列出所有本地標簽
  • $ git tag [tagname] #基於最新提交創建標簽
  • $ git tag -d [tagname] #刪除標簽

合並與衍合

  • $ git merge [branch] #合並指定分支到當前分支
  • $ git rebase [branch] #衍合指定分支到當前分支

遠程操作

  • $ git remote -v #查看遠程版本庫信息
  • $ git remote show [remote] #查看指定遠程版本庫信息
  • $ git remote add [remote] [url] #添加遠程版本庫
  • $ git remote rename [old-remote-name] [new-remote-name] #遠程倉庫的重命名
  • $ git remote rm [remote] #遠程倉庫的刪除
  • $ git fetch [remote] #從遠程庫獲取代碼
  • $ git pull [remote] [branch] #下載代碼及快速合並至當前分支
  • $ git push [remote] [branch] #上傳代碼及快速合並
  • $ git push origin featureB[本地分支]:featureBee[遠程分支] #推送本地分支至指定的遠程分支
  • $ git push [remote] :[branch/tag-name] #刪除遠程分支或標簽
  • $ git push --tags #上傳所有標簽

其他

  • $ git describe master #生成內部版本號
  • $ git archive master --prefix='project/' | gzip > 'git describe master'.tar.gz #打包成tar
  • $ git archive master --prefix='project/' --format=zip > 'git describe master'.zip #打包成zip
  • $ git stash #儲藏
  • $ git stash list #查看儲藏列表
  • $ git stash apply stash@2 #應用名為stash@2 的儲藏。如果你不指明,Git 默認使用最近的儲藏並嘗試應用它
  • $ git stash drop stash@{0} #移除名為stash@{0}的儲藏
  • $ git blame -L 12,22 simplegit.rb #文件標注

Git文件

  • .gitattributes #屬性文件

 

.doc diff=word
database.xml merge=ours

 

  • .gitignore #忽略某些文件

 

# 此為注釋– 將被Git忽略
*.[oa] # 忽略所有.o或.a結尾的文件
!lib.a # 但lib.a 除外
/TODO # 僅僅忽略項目根目錄下的TODO文件,不包括subdir/TODO
build/ # 忽略build/目錄下的所有文件
doc/*.txt # 會忽略doc/notes.txt但不包括doc/server/arch.txt
Copyright © Linux教程網 All Rights Reserved