首頁 > 軟體

簡明 Git 命令速查表(中文版)

2020-06-16 17:58:09

 

建立

複製一個已建立的倉庫:

  1. $ git clone ssh://user@domain.com/repo.git

建立一個新的本地倉庫:

  1. $ git init

 

本地修改

顯示工作路徑下已修改的檔案:

  1. $ git status

顯示與上次提交版本檔案的不同:

  1. $ git diff

把當前所有修改新增到下次提交中:

  1. $ git add

把對某個檔案的修改新增到下次提交中:

  1. $ git add -p <file>

提交原生的所有修改:

  1. $ git commit -a

提交之前已標記的變化:

  1. $ git commit

附加訊息提交:

  1. $ git commit -m 'message here'

提交,並將提交時間設定為之前的某個日期:

  1. git commit --date="`date --date='n day ago'`"-am "Commit Message"

修改上次提交
請勿修改已發布的提交記錄!

  1. $ git commit --amend

把當前分支中未提交的修改移動到其他分支

  1. git stash
  2. git checkout branch2
  3. git stash pop

 

搜尋

從當前目錄的所有檔案中查詢文字內容:

  1. $ git grep "Hello"

在某一版本中搜尋文字:

  1. $ git grep "Hello" v2.5

 

提交歷史

從最新提交開始,顯示所有的提交記錄(顯示hash, 作者資訊,提交的標題和時間):

  1. $ git log

顯示所有提交(僅顯示提交的hash和message):

  1. $ git log --oneline

顯示某個使用者的所有提交:

  1. $ git log --author="username"

顯示某個檔案的所有修改:

  1. $ git log -p <file>

誰,在什麼時間,修改了檔案的什麼內容:

  1. $ git blame <file>

 

分支與標籤

列出所有的分支:

  1. $ git branch

切換分支:

  1. $ git checkout <branch>

建立並切換到新分支:

  1. $ git checkout -b <branch>

基於當前分支建立新分支:

  1. $ git branch <new-branch>

基於遠端分支建立新的可追溯的分支:

  1. $ git branch --track <new-branch><remote-branch>

刪除本地分支:

  1. $ git branch -d <branch>

給當前版本打標籤:

  1. $ git tag <tag-name>

 

更新與發布

列出當前設定的遠端端:

  1. $ git remote -v

顯示遠端端的資訊:

  1. $ git remote show <remote>

新增新的遠端端:

  1. $ git remote add <remote><url>

下載遠端端版本,但不合併到HEAD中:

  1. $ git fetch <remote>

下載遠端端版本,並自動與HEAD版本合併:

  1. $ git remote pull <remote><url>

將遠端端版本合併到本地版本中:

  1. $ git pull origin master

將本地版本發布到遠端端:

  1. $ git push remote <remote><branch>

刪除遠端端分支:

  1. $ git push <remote>:<branch>(since Git v1.5.0)
  2. git push <remote>--delete<branch>(since Git v1.7.0)

發布標籤:

  1. $ git push --tags

 

合併與重置

將分支合併到當前HEAD中:

  1. $ git merge <branch>

將當前HEAD版本重置到分支中:
請勿重置已發布的提交!

  1. $ git rebase <branch>

退出重置:

  1. $ git rebase --abort

解決衝突後繼續重置:

  1. $ git rebase --continue

使用設定好的merge tool 解決衝突:

  1. $ git mergetool

在編輯器中手動解決衝突後,標記檔案為已解決衝突

  1. $ git add <resolved-file>
  1. $ git rm <resolved-file>

 

復原

放棄工作目錄下的所有修改:

  1. $ git reset --hard HEAD

移除快取區的所有檔案(i.e. 復原上次git add):

  1. $ git reset HEAD

放棄某個檔案的所有本地修改:

  1. $ git checkout HEAD <file>

重置一個提交(通過建立一個截然不同的新提交)

  1. $ git revert <commit>

將HEAD重置到指定的版本,並拋棄該版本之後的所有修改:

  1. $ git reset --hard <commit>

將HEAD重置到上一次提交的版本,並將之後的修改標記為未新增到快取區的修改:

  1. $ git reset <commit>

將HEAD重置到上一次提交的版本,並保留未提交的本地修改:

  1. $ git reset --keep <commit>

GitHub 教學系列文章: 

GitHub 使用教學圖文詳解  http://www.linuxidc.com/Linux/2014-09/106230.htm 

Git 標籤管理詳解 http://www.linuxidc.com/Linux/2014-09/106231.htm 

Git 分支管理詳解 http://www.linuxidc.com/Linux/2014-09/106232.htm 

Git 遠端倉庫詳解 http://www.linuxidc.com/Linux/2014-09/106233.htm 

Git 本地倉庫(Repository)詳解 http://www.linuxidc.com/Linux/2014-09/106234.htm 

Git 伺服器搭建與用戶端安裝  http://www.linuxidc.com/Linux/2014-05/101830.htm 

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm 

分享實用的GitHub 使用教學 http://www.linuxidc.com/Linux/2014-04/100556.htm 


IT145.com E-mail:sddin#qq.com