關於git的介紹和更詳細的使用,請前往 Git教程 - 廖雪峰的官方網站 進行閱讀,本文只是將常用的命令做個總結,以備不時之需。
1. git配置
1.1 使用者名稱和郵箱
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
複製程式碼
以上命令表示所有的倉庫都使用相同的使用者名稱和郵箱,輸入如下命令可獲取全域性配置的使用者名稱和郵箱:
$ git config --global user.name
$ git config --global user.email
複製程式碼
如果想對某個倉庫使用專門的使用者名稱和郵箱,去掉--global
即可,在相應的倉庫下輸入如下命令:
$ git config user.name "Your Name"
$ git config user.email "email@example.com"
複製程式碼
同理,輸入如下命令可獲取單獨配置的使用者名稱和郵箱:
$ git config user.name
$ git config user.email
複製程式碼
1.2 SSH Key
本地倉庫和遠端倉庫的傳輸可以通過SSH協議,所以需要配置SSH Key。
$ cd ~/.ssh
$ ls
config id_rsa id_rsa.pub known_hosts
複製程式碼
如果存在.ssh
目錄,且該目錄下存在id_rsa
和id_rsa.pub
兩個檔案,說明已建立SSH Key,否則需要輸入以下命令來建立:
$ cd ~
$ ssh-keygen -t rsa -C "youremail@example.com"
複製程式碼
你需要把郵件地址換成你自己的郵件地址,然後一路回車,使用預設值即可,由於這個Key也不是用於軍事目的,所以也無需設定密碼。
如果一切順利的話,可以看到.ssh
目錄,且該目錄下存在id_rsa
和id_rsa.pub
兩個檔案,通過cat id_rsa.pub
命令開啟id_rsa.pub
檔案,並將裡面所有的內容複製貼上到GitHub等倉庫託管網站上的SSH Key裡的Key文字框中,SSH協議已經配置完成。
2. 倉庫管理
git init
:初始化本地倉庫
git status
:檢視工作區的狀態
git diff <file>
:檢視file檔案的改動
git log
:檢視提交歷史
git log --pretty=oneline
:以一行的內容來顯示提交歷史
git reflog
:檢視所有的命令歷史
git checkout -- <file>
:撤銷工作區內file檔案的改動
git checkout .
:撤銷工作區內所有檔案的改動
git add <file>
:新增工作區內修改的file檔案到暫存區
git add .
:新增工作區內所有修改的檔案到暫存區
git reset HEAD <file>
:將暫存區的file檔案撤回至工作區
git reset HEAD .
:將暫存區的所有檔案撤回至工作區
git rm <file>
:當刪除檔案,輸入git status
會提示有檔案刪除,此時輸入該命令刪除倉庫檔案
git commit -m 'commit message'
:將暫存區的內容提交到本地倉庫,提交資訊為commit message
git commit --amend
:追加到最後一次提交
git pull
:從遠端倉庫拉取所有分支的程式碼
git pull origin master
:從遠端倉庫拉取master分支的程式碼,master可改為正在工作的公共分支,如dev分支
git push origin master
:推送本地倉庫到遠端倉庫的master分支,master可改為正在工作的公共分支,如dev分支
git remote add origin <遠端倉庫ssh地址>
:本地倉庫關聯遠端倉庫
git push -u origin master
:把本地庫的所有內容推送到遠端庫上(第一次推送需要新增-u
,目的是把本地的master
分支和遠端的master
分支關聯起來)
git clone <遠端倉庫ssh地址>
:克隆遠端庫到本地
3. 分支管理
git branch
:檢視本地所有分支(前面帶*
符號的分支為當前分支)
git branch -a
:檢視本地和遠端的所有分支
git branch dev
:建立一個dev
分支
git checkout dev
:切換到dev
分支
git checkout -b dev
:建立並切換到dev
分支,相當於執行了上面兩個命令
git branch -d dev
:刪除dev
分支
git branch -D dev
:強制刪除dev
分支
git merge dev
:合併dev
分支到當前分支
git branch -d dev
:刪除dev
分支
git log --graph
:檢視分支合併圖
git stash
:儲存當前分支的進度
git stash list
:檢視當前分支的所有儲存歷史
git stash apply
:恢復當前分支最新儲存的內容
git stash apply stash@{0}
:恢復當前分支指定儲存的內容,配合git stash list
使用,{}
內的數字表示儲存列表中的數字
git stash drop
:刪除最新儲存內容
git stash pop
:恢復最新的同時刪除最新儲存內容,推薦使用,替代git stash apply
和git stash drop
命令
4.標籤管理
git tag v1.0
:打一個“v1.0”的標籤
git tag -a v1.0 -m "message"
:打一個帶說明的“v1.0”標籤
git tag
:檢視標籤
git tag v0.9 f52c633
:對f52c633
這次commit提交打一個“v0.9”的標籤
git show v1.0
:檢視“v1.0”標籤的詳細資訊
git tag -d v1.0
:刪除“v1.0”標籤
git push origin v1.0
:推送“v1.0”標籤到遠端倉庫
git push origin --tags
:推送本地所有的標籤到遠端倉庫
git push origin :refs/tags/v1.0
:刪除遠端倉庫中的“v1.0”標籤