文章結尾有常用命令的圖表哦!git 配置基礎配置別名配置換行符配置推薦配置core.autocrlfcore.safecrlf記住我git命令詮釋大全git clonegit initgit addgit brachgit tag打包上線啦 git archive任務簡報 git shortlog常...
文章結尾有常用命令的圖表哦!
git 配置
git config
用來對git進行偏好設置,設置的作用域分為三種:
參數 | 作用域 | 配置文件 |
---|---|---|
system | 作用於整個系統 | /etc/gitconfig |
global | 作用於當前用戶 | ~/.gitconfig |
local | 作用於當前項目 | .git/config |
基礎配置
git config --global user.name "<user-name>"
設置用戶名git config --global user.email "<email-address>"
設置郵箱
別名配置
git config --global alias.ci commit
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status
換行符配置
推薦配置
core.autocrlf false
core.safecrlf true
core.autocrlf
選項 | 解釋 |
---|---|
true | 檢出時轉換為CRLF,提交時轉換為LF |
input | 檢出時不轉換,提交時轉換為LF |
false | 提交檢出時均不轉換 |
core.safecrlf
選項 | 解釋 |
---|---|
true | 拒絕提交包含混合換行符的文件 |
false | 允許提交包含混合換行符的文件 |
warn | 提交包含混合換行符的文件時給出警告 |
記住我
git config --global credential.helper store
這將會在 ~/.git-credentials 文件中保存每一個訪問過的功能變數名稱的用戶名和密碼(明文)
git命令詮釋大全
git clone
git clone
用來拷貝一個庫到本地,包括了歷史信息。 參數--depth <depth>
不要獲取所有的歷史,只獲取最近<depth>
次的.
git init
git init
初始化一個空的git庫
git add
git add
三個作用分別是:
- 讓git開始track文件和目錄,也就是將文件和目錄納入到版本控制
- 將已納入到track中的文件和目錄添加到下一次提交的列表中(index 或 staging)
- 將 conflict 的文件標記為 resolved (衝突已解決)
git brach
git brach
分支管理
-d | --delete
刪除分支,只能刪除已經過merge的分支-D | --delete --force
強制刪除分支,即使沒有經過merge-m | --move
重命名分支-M | --move --force
強制重命名分支,即使同名新分支已存在-r | --remotes
列出遠程分支,預設僅列出本地分支-a | --all
列出所有分支,包括本地和遠程分支-t | --track
設置本地分支track遠程分支--no-track
解除分支的track關係--merged
僅列出已經過merge的分支 --no-merged 僅列出沒有經過merge的分支
git tag
git tag
標簽管理
三種tag形式:
1. 沒有附加信息的tag(lightweight)- git預設行為
2. 帶附加信息的tag(annotated) - 使用 git tag -a 指定
3. 被GPG-key簽署過的tag(signed) - 使用 git tag -s 制定
命令參數如下:
-l | --list
列出所有的tag-a | --annotate
產生帶附加信息的tag-m | --message
tag攜帶的附加信息-d | --delete
刪除指定的tag-f | --force
強制覆蓋已有的tag-s | --sign
產生被GPG-key簽署過的tag-v | --verify
驗證被GPG-key簽署過的tag
打包上線啦 git archive
git archive 可以從git庫的任意歷史提交點取出所有文件的內容, 適合用來從git庫獲取純凈的代碼(不包括.git目錄)。
-l | --list
列出所有支持的輸出格式--format
指定一種輸出格式--prefix
添加一個首碼,用來建立目錄層級-o | --output
將輸出寫入文件而不是預設的標準輸出
例如:
git archive [--format=<fmt>] [--prefix=<prefix>/] --output=<file>] <tree-ish>
git archive --format=tar.gz ac340b456 >jpool.tar.gz
任務簡報 git shortlog
git short 可以綜合git log的輸出,適合用來製作release note和簡報
-e | --email
在姓名後顯示郵件地址
-n | --numbered
以用戶的提交次數排序而不是預設的用戶名首字母排序
以git自身的源代碼為例,下麵的命令會輸出版本v2.5.0-rc0到版本v2.5.0-rc1的shortlog
git shortlog v2.5.0-rc0..v2.5.0-rc1
內容大概如下:
Joe Cridge (1):
git-prompt.sh: document GIT_PS1_STATESEPARATOR
Junio C Hamano (8):
Merge branch 'cb/array-size' into maint
Merge branch 'jk/stash-require-clean-index' into maint
Sync with maint
Merge branch 'da/mergetool-winmerge'
Merge branch 'mm/describe-doc'
Merge branch 'jc/prompt-document-ps1-state-separator'
Merge branch 'me/fetch-into-shallow-safety'
Git 2.5.0-rc1
Matthieu Moy (1):
Documentation/describe: improve one-line summary
Michael J Gruber (1):
mergetool-lib: fix default tool selection
Mike Edgar (1):
fetch-pack: check for shallow if depth given
(未完待續哦……)
常用命令圖

附錄
最後,感謝閱讀!
如果你想看到更多的 git的詳細知識,請在Github
上面搜索 star-fx
的 learn git the hard way
! 他是一個git的超級粉絲,有很多關於企業git實踐的知識。也是一個很熱心的人,如果你有問題,給他發郵件,一定會得到滿意的答覆!