1. 程式人生 > >【Git】git系統學習(一):常用指令

【Git】git系統學習(一):常用指令

1、配置工具
$ git config --global user.name "[name]"

設定使用者名稱

$ git config --global user.email "[email address]"

設定郵箱

$ git config --global color.ui auto

自動配置命令列的輸出顏色

$ git config --global color.ui true

全部開啟顏色配置

$ git config --global color.ui false

全部關閉顏色配置

2、建立儲存庫
$ git init [project-name]

建立本地庫,專案名(project-name)可選

$ git clone [url]

克隆遠端庫(包括整個版本歷史)

3、修改後如何提交
$ git status

列出所有準備要提交的新檔案或修改檔案

$ git diff

顯示還沒有執行“git add [file]”的檔案中的差異,如果已經執行了“git add [file]”,將不會再打印出來,因此“git diff”一般在“git add”之前使用

$ git add [file]

新增需要提交的檔案

$ git reset [file]

撤銷操作“git add [file]”,回到執行“git add [file]”之前的狀態

$ git diff --staged

顯示已經執行了“git add [file]”的檔案和上一個版本的差異,如果沒有執行“git add [file]”,將不會打印出來,因此“git diff --staged”在“git add [file]”之後使用。

$ git commit -m "[descriptive message]"

提交已經執行“git add [file]”的檔案,並更新版本。

4、分支操作
$ git branch

列出當前儲存庫中的所有本地分支

$ git branch [branch-name]

建立一個新分支branch-name

$ git checkout [branch-name]

切換到指定的分支branch-name並更新工作目錄

$ git merge [branch]

將指定分支branch的歷史記錄合併到當前分支

$ git branch -d [branch-name]

刪除指定的分支branch-name

5、刪除、重新命名檔案
$ git rm [file]

刪除檔案,刪除後可以通過git checkout [file]恢復,或git commit提交。

$ git rm --cached [file]

從版本控制中刪除檔案,但本地的沒有刪除,這點與“git rm [file]”不同

$ git mv [file-original] [file-renamed]

更改檔名並準備提交

6、檢視歷史更改記錄
$ git log

列出當前分支的版本歷史

$ git log --follow [file]

列出檔案的版本歷史,包括該檔案重新命名之前的版本歷史,但是file必須是現在的名字,即重新命名之後的名字

$ git diff [first-branch]...[second-branch]

顯示兩個分支之間的內容差異

$ git show [commit]

顯示指定提交版本的更改內容
[commit]是提交時生成的版本號,如下面的1b2d817aa982a91b3a16b7f02a990a8f72fe4e2d

commit 1b2d817aa982a91b3a16b7f02a990a8f72fe4e2d
Author: laoer <>
Date:   Tue Aug 21 09:44:29 2018 +0800

    hello
7、忽略臨時檔案、目錄等

在工程目錄(與.git同級目錄)中建立“.gitignore”檔案。.gitignore檔案中寫入需要忽略的檔案和目錄,每行一個,支援正則表示式。編輯完.gitignore需要使用git add和git commit提交。下面是一個常用的.gitignore檔案

# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so

# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# Logs and databases #
######################
*.log
*.sql
*.sqlite

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

可以使用下面命令來檢視,被忽略掉的檔案或目錄:

$ git ls-files --other --ignored --exclude-standard
8、臨時儲存和恢復

如果程式碼寫的一半,需要儲存後切換到其它分支上去,但是又不想commit到版本庫中,以免汙染了提交日誌,這時就要用到“git stash”

$ git stash

臨時儲存更改內容

$ git stash list

列出臨時儲存的更改內容

$ git stash pop

恢復臨時儲存的更改內容

$ git stash drop

刪除臨時儲存的更改內容

9、重新提交
$ git reset [commit]

恢復指定版本號commit後將恢復至指定版本,但本地內容不會更改,重新提交後,指定版本號以後的記錄將會丟棄。最好不要使用。

$ git reset --hard [commit]

這將會刪除所有記錄,包括本地的內容。嚴禁使用

10、多人協同工作
$ git branch -a 

檢視所有分支,紅色的是遠端分支

git fetch 

獲取遠端分支

git diff HEAD FETCH_HEAD 

檢視本地和遠端的區別

git merge origin/master 

合併

git push -u origin master 

將本地的master分支推送到origin主機