Git 經常使用命令(二)

用 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目錄下面,而是直接存放在版本庫的根目錄下面php

」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位置:html

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,這個時候會顯示最終三個配置文件計算後的配置信息

 

git命令自動補齊git

git 命令並不支持自動補全功能,爲了使咱們的工做更加高效,就很是有必要用到自動補全功能。實現這個功能須要用到 git 源碼中的一個腳本文件。github

  
  
  
  
方法一:
1.下載git 源碼 git clone https:// github.com/git/git

源代碼下有個 contrib/completion 目錄,有個 git-completion.bash 文件vim

cd git/contrib/completion/

2.將該文件複製到主目錄(~)下bash

cp git-completion.bash ~/.git-completion.bash

3.在 .bashrc 中加入:curl

vim ~/.git-completion.bash
source ~/.git-completion.bash

4. 重啓Terminal編輯器

方法二:函數

首先下載自動補齊腳本,使用curl命令以下:ui

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash \
-o ~/.git-completion.bash

編輯~/.profile 文件,在最後增長以下代碼:

if [ -f ~/.git-completion.bash ]; then
    source ~/.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 repository


git 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 .  //全覆蓋
相關文章
相關標籤/搜索