Git 經常使用命令整理(轉)

初始化配置

#配置使用git倉庫的人員姓名  
git config --global user.name "Your Name Comes Here"  
  
#配置使用git倉庫的人員email  
git config --global user.email you@yourdomain.example.com  
  
#配置到緩存 默認15分鐘  
git config --global credential.helper cache   
  
#修改緩存時間  
git config --global credential.helper 'cache --timeout=3600'    
  
git config --global color.ui true  
git config --global alias.co checkout  
git config --global alias.ci commit  
git config --global alias.st status  
git config --global alias.br branch  
git config --global core.editor "mate -w"    # 設置Editor使用textmate  
git config -1 #列舉全部配置  
  
#用戶的git配置文件~/.gitconfig  

  

查看、添加、提交、刪除、找回,重置修改文件

git help <command>  # 顯示command的help  
git show            # 顯示某次提交的內容  
git show $id  
   
git co  -- <file>   # 拋棄工做區修改  
git co  .           # 拋棄工做區修改  
   
git add <file>      # 將工做文件修改提交到本地暫存區  
git add .           # 將全部修改過的工做文件提交暫存區  
   
git rm <file>       # 從版本庫中刪除文件  
git rm <file> --cached  # 從版本庫中刪除文件,但不刪除文件  
   
git reset <file>    # 從暫存區恢復到工做文件  
git reset -- .      # 從暫存區恢復到工做文件  
git reset --hard    # 恢復最近一次提交過的狀態,即放棄上次提交後的全部本次修改  
   
git ci <file>  
git ci .  
git ci -a           # 將git add, git rm和git ci等操做都合併在一塊兒作  
git ci -am "some comments"  
git ci --amend      # 修改最後一次提交記錄  
   
git revert <$id>    # 恢復某次提交的狀態,恢復動做自己也建立了一次提交對象  
git revert HEAD     # 恢復最後一次提交的狀態  

  

查看文件diff

git diff <file>     # 比較當前文件和暫存區文件差別  
git diff  
git diff <$id1> <$id2>   # 比較兩次提交之間的差別  
git diff <branch1>..<branch2> # 在兩個分支之間比較  
git diff --staged   # 比較暫存區和版本庫差別  
git diff --cached   # 比較暫存區和版本庫差別  
git diff --stat     # 僅僅比較統計信息  

  

查看提交記錄

git log  
git log <file>      # 查看該文件每次提交記錄  
git log -p <file>   # 查看每次詳細修改內容的diff  
git log -p -2       # 查看最近兩次詳細修改內容的diff  
git log --stat      #查看提交統計信息  

  

取得Git倉庫

#初始化一個版本倉庫  
git init  
  
#Clone遠程版本庫  
git clone git@xbc.me:wordpress.git  
  
#添加遠程版本庫origin,語法爲 git remote add [shortname] [url]  
git remote add origin git@xbc.me:wordpress.git  
  
#查看遠程倉庫  
git remote -v  

  

提交你的修改

#添加當前修改的文件到暫存區  
git add .  
  
#若是你自動追蹤文件,包括你已經手動刪除的,狀態爲Deleted的文件  
git add -u  
  
#提交你的修改  
git commit –m "你的註釋"  
  
#推送你的更新到遠程服務器,語法爲 git push [遠程名] [本地分支]:[遠程分支]  
git push origin master  
  
#查看文件狀態  
git status  
  
#跟蹤新文件  
git add readme.txt  
  
#從當前跟蹤列表移除文件,並徹底刪除  
git rm readme.txt  
  
#僅在暫存區刪除,保留文件在當前目錄,再也不跟蹤  
git rm –cached readme.txt  
  
#重命名文件  
git mv reademe.txt readme  
  
#查看提交的歷史記錄  
git log  
  
#修改最後一次提交註釋的,利用–amend參數  
git commit --amend  
  
#忘記提交某些修改,下面的三條命令只會獲得一個提交。  
git commit –m "add readme.txt"  
git add readme_forgotten  
git commit –amend  
  
#假設你已經使用git add .,將修改過的文件a、b加到暫存區  
  
#如今你只想提交a文件,不想提交b文件,應該這樣  
git reset HEAD b  
  
#取消對文件的修改  
git checkout –- readme.txt  

  

查看、切換、建立和刪除分支

git br -r           # 查看遠程分支  
git br <new_branch> # 建立新的分支  
git br -v           # 查看各個分支最後提交信息  
git br --merged     # 查看已經被合併到當前分支的分支  
git br --no-merged  # 查看還沒有被合併到當前分支的分支  
   
git co <branch>     # 切換到某個分支  
git co -b <new_branch> # 建立新的分支,而且切換過去  
git co -b <new_branch> <branch>  # 基於branch建立新的new_branch  
   
git co $id          # 把某次歷史提交記錄checkout出來,但無分支信息,切換到其餘分支會自動刪除  
git co $id -b <new_branch>  # 把某次歷史提交記錄checkout出來,建立成一個分支  
   
git br -d <branch>  # 刪除某個分支  
git br -D <branch>  # 強制刪除某個分支 (未被合併的分支被刪除的時候須要強制)  

  

分支合併和rebase

git merge <branch>               # 將branch分支合併到當前分支  
git merge origin/master --no-ff  # 不要Fast-Foward合併,這樣能夠生成merge提交  
   
git rebase master <branch>       # 將master rebase到branch,至關於:  
git co <branch> && git rebase master && git co master && git merge <branch>  

  

Git暫存管理

git stash                        # 暫存  
git stash list                   # 列全部stash  
git stash apply                  # 恢復暫存的內容  
git stash drop                   # 刪除暫存區  

  

Git遠程分支管理

git pull                         # 抓取遠程倉庫全部分支更新併合併到本地  
git pull --no-ff                 # 抓取遠程倉庫全部分支更新併合併到本地,不要快進合併  
git fetch origin                 # 抓取遠程倉庫更新  
git merge origin/master          # 將遠程主分支合併到本地當前分支  
git co --track origin/branch     # 跟蹤某個遠程分支建立相應的本地分支  
git co -b <local_branch> origin/<remote_branch>  # 基於遠程分支建立本地分支,功能同上  
   
git push                         # push全部分支  
git push origin master           # 將本地主分支推到遠程主分支  
git push -u origin master        # 將本地主分支推到遠程(如無遠程主分支則建立,用於初始化遠程倉庫)  
git push origin <local_branch>   # 建立遠程分支, origin是遠程倉庫名  
git push origin <local_branch>:<remote_branch>  # 建立遠程分支  
git push origin :<remote_branch>  #先刪除本地分支(git br -d <branch>),而後再push刪除遠程分支  

  

基本的分支管理

#建立一個分支  
git branch iss53  
  
#切換工做目錄到iss53  
git chekcout iss53  
  
#將上面的命令合在一塊兒,建立iss53分支並切換到iss53  
git chekcout –b iss53  
  
#合併iss53分支,當前工做目錄爲master  
git merge iss53  
  
#合併完成後,沒有出現衝突,刪除iss53分支  
git branch –d iss53  
  
#拉去遠程倉庫的數據,語法爲 git fetch [remote-name]  
git fetch  
  
#fetch 會拉去最新的遠程倉庫數據,但不會自動到當前目錄下,要自動合併  
git pull  
  
#查看遠程倉庫的信息  
git remote show origin  
  
#創建本地的dev分支追蹤遠程倉庫的develop分支  
git checkout –b dev origin/develop  

  

Git遠程倉庫管理

git remote -v                    # 查看遠程服務器地址和倉庫名稱  
git remote show origin           # 查看遠程服務器倉庫狀態  
git remote add origin git@ github:robbin/robbin_site.git         # 添加遠程倉庫地址  
git remote set-url origin git@ github.com:robbin/robbin_site.git # 設置遠程倉庫地址(用於修改遠程倉庫地址)  
git remote rm <repository>       # 刪除遠程倉庫  

  

建立遠程倉庫

git clone --bare robbin_site robbin_site.git  # 用帶版本的項目建立純版本倉庫  
scp -r my_project.git git@ git.csdn.net:~      # 將純倉庫上傳到服務器上  
   
mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服務器建立純倉庫  
git remote add origin git@ github.com:robbin/robbin_site.git    # 設置遠程倉庫地址  
git push -u origin master                                      # 客戶端首次提交  
git push -u origin develop  # 首次將本地develop分支提交到遠程develop分支,而且track  
   
git remote set-head origin master   # 設置遠程倉庫的HEAD指向master分支  
相關文章
相關標籤/搜索