用 git init 在目錄中創建新的 Git 倉庫。?
$ mkdir test $ cd test/ $ git init Initialized empty Git repository in /Users/chenm/www/test/.git/ # 在 /www/test/.git/ 目錄初始化空 Git 倉庫完畢。
可以看到在你的項目中生成了 .git 這個子目錄(隱藏文件)。 這就是你的 Git 倉庫了,所有有關你的此項目的快照數據都存放在這里。
ls -a
不使用--bare選項時,就會生成.git目錄以及其下的版本歷史記錄文件,這些版本歷史記錄文件就存放在.git目錄下;而使用--bare選項時,不再生成.git目錄,而是只生成.git目錄下面的版本歷史記錄文件,這些版本歷史記錄文件也不再存放在.git目錄下面,而是直接存放在版本庫的根目錄下面
”git init –bare”方法創建一個所謂的裸倉庫,之所以叫裸倉庫是因為這個倉庫只保存git歷史提交的版本信息,而不允許用戶在上面進行各種git操作,如果你硬要操作的話,只會得到下面的錯誤(”This operation must be run in a work tree”)
版本庫位于工作區根目錄下的.git目錄中,僅此一處,工作區執行git 命令會依次向上查找.git,非工作區執行git命令會因找不到.git目錄而報錯。
顯示工作區根目錄:
git rev-parse —show-toplevel
版本庫.git位置:
git rev-parse —git-dir
倉庫級配置文件位置
當前倉庫下,路徑.git/,文件名為config,這個配置中的設置只對當前所在倉庫有效倉庫級配置文件內容
全局級配置在用戶目錄下,文件名為.gitconfig
系統級配置文件:本地git的安裝目錄下,\Git\etc,文件名為:gitconfig
命令參數 –list, 簡寫 -l
格式:git config [–local|–global|–system] -l
查看倉庫級的config,即.git/.config,命令:git config -–local -l
查看全局級的config,即C:\Users\zuoyu.ht\.gitconfig,命令:git config -–global -l
查看系統級的config,即D:\Program Files\Git\etc\gitconfig,命令:git config -–system -l
查看當前生效的配置,命令:git config -l,這個時候會顯示最終三個配置文件計算后的配置信息
更多參數查看:https://www.kernel.org/pub/software/scm/git/docs/git-config.html
?
git命令自動補齊
git 命令并不支持自動補全功能,為了使我們的工作更加高效,就非常有必要用到自動補全功能。實現這個功能需要用到 git 源碼中的一個腳本文件。
方法一:
1.下載git 源碼?git clone https://github.com/git/git
源代碼下有個?contrib/completion?目錄,有個?git-completion.bash?文件
cd git/contrib/completion/
2.將該文件復制到主目錄(~)下
cp git-completion.bash ~/.git-completion.bash
3.在 .bashrc 中加入:
vim ~/.git-completion.bash
source ~/.git-completion.bash
4. 重啟Terminal
方法二:
首先下載自動補齊腳本,使用curl命令如下:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash \ -o ~/.git-completion.bash
編輯~/.profile 文件,在最后增加如下代碼:
if [ -f ~/.git-completion.bash ]; thensource ~/.git-completion.bash fi
重啟終端后應該就可以使用tab自動補全?
彩色git 輸出

git config --global color.ui true 或者編輯git配置文件:vi ~/.gitconfig [color]ui = true
設置好以后,當輸出到終端時,Git 會為之加上顏色。其他的參數還有false和always,false意味著不為輸出著色,而always則表明在任何情況下都要著色,即使 Git 命令被重定向到文件或管道。讓diff輸出的改變信息以粗體、藍色前景和黑色背景的形式顯示
$ git config --global color.diff.meta “blue black bold”
可以參考git config
幫助頁
其他
$ touch README //創建一個文件 $ touch hello.php $ vim README$ git grep mmap //搜索倉庫里使用'mmap'函數的地方
git add welcome.txt //git add 后git diff顯示無差異 //git diff HEAD(版本庫頭指針)/master 會顯示差異 git commit //如果你沒有設置 -m 選項,Git 會嘗試為你打開一個編輯器以填寫提交信息。 如果 Git 在你對它的配置中找不到相關信息,默認會打開 vim。 git-ls-tree - List the contents of a tree object git-ls-files - Show information about files in the index and the working tree git-ls-remote - List references in a remote repositorygit checkout 重寫工作區 git checkout [-q] [commit] [—] <path>… git checkout [branch] git checkout [-m] [-b | —orphan new_branch] [start_point] //創建及切換新分支,新分支從<start_point>指向新的提交開始創建 git checkout —fileName //暫存區fileName文件覆蓋工作區,即取消上次操作 git checkout branchName —fileName //branchName所指向的fileName覆蓋暫存區和工作區 git checkout --. / git checkout . //全覆蓋
?