1. 程式人生 > 其它 >Git常用命令使用介紹

Git常用命令使用介紹

上一篇文章已經介紹瞭如何在不同系統上安裝Git,接下來詳細介紹Git中常用的命令

獲取倉庫

獲取倉庫的方式有兩種:第一種是新建了一個專案,並初始化為Git倉庫;第二種是獲取已有的Git倉庫,比如從GitHub上克隆一份某專案的映象倉庫

初始化新倉庫

初始化一個新倉庫的方法很簡單,在專案資料夾下開啟Git Bash,執行$ git init命令,資料夾中會多出一個.git資料夾,這是新倉庫就建立成功了

克隆已有倉庫

克隆倉庫也很簡單,比如要克隆Vuejs的倉庫,需要$ git clone命令

$ git clone https://github.com/vuejs/vue.git

記錄更新

在新初始化的倉庫中,新增a.txt

b.txt兩個檔案,隨便寫點東西

內容新增完成後,使用$ git add命令跟蹤這兩個檔案的變化

# 需要跟蹤的檔案
$ git add a.txt b.txt

# 或者跟蹤所有檔案
$ git add .

指定完需要跟蹤的檔案後,使用$ git commit命令暫存已修改的檔案。檔案暫存的目的是為了以後可以隨時回到這次的修改

$ git commit -m "初始化"

檔案暫存後,如果又修改了檔案內容,只需要再次執行$ git add$ git commit命令,或者執行$ git commit -am命令,它是前兩個命令的合成版

檢視修改資訊

$ git status命令可以檢視狀態的變化資訊,$ git diff

可以檢視具體發生了哪些變化

忽略某些檔案

在新增追蹤檔案時,通常使用$ git add .,這種方式會追蹤資料夾下的所有檔案,但有的時候需要忽略某些檔案,這個時候可以配置.gitignore檔案

在專案目錄下新建一個.gitignore檔案,可以自定義不需要跟蹤的檔案,檔案格式規範如下:

1、所有的空行,或者以註釋符號 # 開頭的行都會被 Git 忽略

2、可以使用標準的glob模式匹配

3、匹配模式最後跟反斜槓(/)說明要忽略的是目錄

4、要忽略指定模式以外的檔案或目錄,可以在模式前加上歎號(!)取反

glob模式是指shell所使用的簡化了的正則表示式,星號*匹配零個或多個任意字元;[abc]

匹配任何一個列在方括號中的字元;問號?只匹配一個任意字元;如果在方括號中使用短劃線分隔兩個字元,表示所有在這兩個字元範圍內的都可以匹配(比如[0-9]表示匹配所有0到9的數字)

# 忽略所有 .md 結尾的檔案
*.md

# NOTE.md 不會忽略
!NOTE.md

# 僅僅忽略專案根目錄下的 dist 檔案,不包括 subdir/dist
/dist

# 忽略 build/ 目錄下的所有檔案
build/

# 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt

# 忽略 doc 資料夾下的所有txt檔案,包括子目錄
doc/**/*.txt

如果修改.gitignore後發現無效,先執行git rm -r --cached .清除快取

檢視更新記錄

$ git log命令可以檢視commit記錄

修改提交

當一個功能開發完畢,我們會執行commit操作。commit完成後,突然發現了一些小問題需要立即修改,但是這些修改不值得單獨執行一次commit,這時就可以使用修改提交

$ git commit -am  "完成支付功能"
# 修改一些問題,再次提交
$ git add .
$ git commit --amend

撤銷提交

如果你不小心把使用者名稱和密碼提交到了遠端,可以通過$ git reset --soft HEAD~1命令撤銷最近一次提交,這種方式會保留你的修改,只是刪除了一次提交記錄。然後把私有資訊刪除後再提交到遠端就行了

$ git reset --soft HEAD~1

提交回滾

有時候可能需要回退到某個歷史提交,檢視之前提交的程式碼,這時候可以使用$ git reset --hard <hash:7>命令

# 檢視提交記錄
$ git log --oneline

# 回退得到指定版本
$ git reset --hard fab66f8

回滾後如果需要在回滾回去,可以這麼做

# 檢視之前提交記錄,找到hash值
$ git reflog

# 回退得到指定版本
$ git reset --hard c747387

# 注意: 提交到遠端時,由於本地是落後的分支,直接push是不行的
# 可以使用 `git push -u origin develop -f`強制推送,但是如果說別人已經修改了程式碼,會被覆蓋掉
部落格: https://blog.86886.wang
GitHub: https://github.com/wmui