1. 程式人生 > >自定義Git ~ 忽略特殊檔案.gitignore、配置別名、搭建Git伺服器(十八)

自定義Git ~ 忽略特殊檔案.gitignore、配置別名、搭建Git伺服器(十八)

安裝 Git 一節中,我們已經配置了使用者名稱 user.name 和 Email 地址 user.email,實際上,Git還有很多可配置項。比如,讓 Git 顯示顏色,會讓 輸出的命令 看起來更醒目,如下:

這樣,Git 會適當地顯示不同的顏色,比如 git status 命令,如下: 

檔名 就會標上顏色。

我們在後面還會介紹如何更好地配置Git,以便讓你的工作更高效。


1、忽略特殊檔案.gitignore

有些時候,你必須把某些檔案放到Git工作目錄中,但又不能提交它們,比如儲存了資料庫密碼的配置檔案啦,等等,每次 git status

都會顯示 Untracked files (沒有路徑的檔案) ...,有強迫症的童鞋心裡肯定不爽。

好在 Git 考慮到了大家的感受,這個問題解決起來也很簡單,在 Git 工作區目錄下建立一個特殊的 .gitignore 檔案,如下:

然後把要 忽略的檔名 填寫 進去,Git就會自動忽略這些檔案,假設要忽略 log.txt 檔案,那麼就填 log.txt 檔名進去,如下:

不需要從頭寫 .gitignore 檔案,GitHub已經為我們準備了各種配置檔案,只需要組合一下就可以使用了。所有配置檔案可以直接線上瀏覽:https://github.com/github/gitignore

 ;

忽略檔案的原則是:

  1. 忽略:作業系統自動生成的檔案,比如 縮圖 等;
  2. 忽略:編譯生成的中間檔案、可執行檔案等,也就是如果一個檔案是通過另一個檔案自動生成的,那自動生成的檔案就沒必要放進版本庫,比如Java編譯產生的 .class 檔案;
  3.  忽略:你自己的帶有敏感資訊的配置檔案,比如存放口令的配置檔案。

說白了1,2點:自動生成的檔案直接忽略。

舉個例子:

            假設你在 Windows 下進行 Python 開發,Windows 會自動在有圖片的目錄下生成隱藏的縮圖檔案,如果有自定義目錄,目錄下就會有 Desktop.ini 檔案,因此你需要忽略Windows自動生成的垃圾檔案,如下:

# Windows:
      Thumbs.db
      ehthumbs.db
      Desktop.ini

然後,繼續忽略 Python 編譯產生的 .pyc .pyodist 等檔案或目錄,如下:

# Python:
       *.py[cod]
       *.so
       *.egg
       *.egg-info
        dist
        build

加上你自己定義的檔案,最終得到一個完整的 .gitignore 檔案,內容如下:

# Windows:
      Thumbs.db
      ehthumbs.db
      Desktop.in

# Python:
       *.py[cod]
       *.so
       *.egg
       *.egg-info
        dist
        build

# My configurations:
      db.ini
      deploy_key_rsa

最後一步就是把 .gitignore 也提交到Git ,就完成了!當然檢驗 .gitignore的標準是 git status 命令是不是說working directory clean,如下:

用 Windows 的童鞋注意了,如果你在資源管理器裡新建一個 .gitignore 檔案,它會非常弱智地提示你必須輸入檔名,但是在文字編輯器裡“儲存”或者“另存為”就可以把檔案儲存為 .gitignore 了。

有些時候,你想新增一個檔案到 Git ,但發現新增不了,原因是這個檔案被 .gitignore 忽略了,如下:

如果你確實想新增該檔案,可以用 - f 強制新增到 Git ,如下:

或者你發現,可能是 .gitignore 寫得有問題,需要找出來到底哪個規則寫錯了,可以用 git check-ignore 命令檢查,如下:

小結

  1. 忽略某些檔案時,需要編寫 .gitignore  即:建立 .gitignore ( $ touch .gitignore );
  2.  .gitignore 檔案本身要放到版本庫裡,並且可以對 .gitignore 做版本管理!

2、配置別名

有沒有經常敲錯命令?比如 git statusstatus 這個單詞真心不好記。
如果敲 git st 就表示 git status 那就簡單多了,當然這種偷懶的辦法我們是極力贊成的。(簡化命令)
我們只需要敲一行命令,告訴 Git ,以後 st 就表示 status ,如下:

好了,現在敲 git st 看看效果,圖上。

當然還有別的命令可以簡寫,很多人都用 co 表示 checkout ci 表示 commit br 表示 branch ,如下:

如上圖所示:以後提交 git commit 就可以簡寫成 git ci 的形式了;git commit  → git ci  ;

 -- global 引數是全域性引數,也就是這些命令在這臺電腦的所有 Git 倉庫下都有用。

撤銷修改 一節中,我們知道,命令  git reset HEAD <file>  可以把暫存區的修改撤銷掉(unstage),重新放回工作區。既然是一個unstage 操作,就可以配置一個 unstage 別名,如下:

當你輸入命令,如下:

$ git unstage log.txt 

上面的情況,實際上 Git  執行的是,如下:

$ git reset HEAD log.txt 

現在輸入命令→要顯示最後一次提交資訊,如下:(未簡化命令)

配置一個 git last ,讓其顯示最後一次提交資訊,如下:

這樣,用 git last 就能顯示最近一次的提交,如下:(已簡化命令)

甚至還有人把 lg 配置成這種多樣的形式,如下:

由上圖可知:git lg 的效果 ;

配置檔案

配置 Git 的時候,加上 --global 是針對當前使用者(rose)起作用的,如果不加,那隻針對當前的倉庫(myApp)起作用。

配置檔案放哪了?每個倉庫的Git配置檔案都放在 .git/config 檔案中,如下:

別名就在 [alias] 後面,要刪除別名,直接把對應的行刪掉即可。
而當前使用者的 Git  配置檔案放在 使用者主目錄 下的一個隱藏檔案  .gitconfig  中,如下:

配置別名也可以直接修改這個檔案,如果改錯了,可以刪掉檔案重新通過命令配置。

小結

        給 Git 配置好別名,就可以輸入命令時簡化,我們鼓勵操作。(簡化命令)


3、搭建 Git 伺服器


轉自:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000