Git复习(七)之自定义git、忽略特殊文件、配置文件
前言
config 配置有system級別(系統(tǒng)級別)、 global(用戶級別)、local(當前倉庫)三個
設(shè)置先從system-》global-》local ?底層配置會覆蓋頂層配置 分別使用--system/global/local 可以定位到配置文件
查看系統(tǒng)config
git config --system --list查看用戶config
git config --global --list查看倉庫config
git config --local --list自定義git
我們已經(jīng)配置了user.name和user.email,實際上,Git還有很多可配置項。
配置顏色
比如,讓Git顯示顏色,會讓命令輸出看起來更醒目:
git config --global color.ui true這樣,Git會適當?shù)仫@示不同的顏色,比如git status命令:
文件名就會標上顏色。
我們在后面還會介紹如何更好地配置Git,以便讓你的工作更高效。
配置別名
我們只需要敲一行命令,告訴Git,以后st就表示status、co表示checkout,ci表示commit,br表示branch、unstage表示reset HEAD、last表示顯示最后一次提交信息?
$ git config --global alias.st status $ git config --global alias.co checkout $ git config --global alias.ci commit $ git config --global alias.br branch $ git config --global alias.unstage 'reset HEAD' $ git config --global alias.last 'log -1' $ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"--global參數(shù)是全局參數(shù),也就是這些命令在這臺電腦的所有Git倉庫下都有用。
用git last就能顯示最近一次的提交:
$ git last commit adca45d317e6d8a4b23f9811c3d7b7f0f180bfe2 Merge: bd6ae48 291bea8 Author: Michael Liao <askxuefeng@gmail.com> Date: Thu Aug 22 22:49:22 2013 +0800merge & fix hello.py來看看git lg的效果:
忽略特殊文件
有些時候,你必須把某些文件放到Git工作目錄中,但又不能提交它們,比如保存了數(shù)據(jù)庫密碼的配置文件啦,等等,每次git status都會顯示Untracked files ...,有強迫癥的童鞋心里肯定不爽。
好在Git考慮到了大家的感受,這個問題解決起來也很簡單,在Git工作區(qū)的根目錄下創(chuàng)建一個特殊的.gitignore文件,然后把要忽略的文件名填進去,Git就會自動忽略這些文件。
不需要從頭寫.gitignore文件,GitHub已經(jīng)為我們準備了各種配置文件,只需要組合一下就可以使用了。所有配置文件可以直接在線瀏覽:https://github.com/github/gitignore
忽略文件的原則是:
-
忽略操作系統(tǒng)自動生成的文件,比如縮略圖等;
-
忽略編譯生成的中間文件、可執(zhí)行文件等,也就是如果一個文件是通過另一個文件自動生成的,那自動生成的文件就沒必要放進版本庫,比如Java編譯產(chǎn)生的.class文件;
-
忽略你自己的帶有敏感信息的配置文件,比如存放口令的配置文件。
舉個例子:
假設(shè)你在Windows下進行Python開發(fā),Windows會自動在有圖片的目錄下生成隱藏的縮略圖文件,如果有自定義目錄,目錄下就會有Desktop.ini文件,因此你需要忽略Windows自動生成的垃圾文件:
# Windows: Thumbs.db ehthumbs.db Desktop.ini然后,繼續(xù)忽略Python編譯產(chǎn)生的.pyc、.pyo、dist等文件或目錄:
# Python: *.py[cod] *.so *.egg *.egg-info dist build加上你自己定義的文件,最終得到一個完整的.gitignore文件,內(nèi)容如下:
# Windows: Thumbs.db ehthumbs.db Desktop.ini# 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,但發(fā)現(xiàn)添加不了,原因是這個文件被.gitignore忽略了:
$ git add App.class The following paths are ignored by one of your .gitignore files: App.class Use -f if you really want to add them.如果你確實想添加該文件,可以用-f強制添加到Git:
$ git add -f App.class或者你發(fā)現(xiàn),可能是.gitignore寫得有問題,需要找出來到底哪個規(guī)則寫錯了,可以用git check-ignore命令檢查:
$ git check-ignore -v App.class .gitignore:3:*.class App.classGit會告訴我們,.gitignore的第3行規(guī)則忽略了該文件,于是我們就可以知道應(yīng)該修訂哪個規(guī)則。
總結(jié)
-
忽略某些文件時,需要編寫.gitignore;
-
.gitignore文件本身要放到版本庫里,并且可以對.gitignore做版本管理!
-
.gitignore會忽略更改但更改實際上是存在的
配置文件
配置Git的時候,加上--global是針對當前用戶起作用的,如果不加,那只針對當前的倉庫起作用。
配置文件放哪了?每個倉庫的Git配置文件都放在.git/config文件中:
$ cat .git/config [core]repositoryformatversion = 0filemode = truebare = falselogallrefupdates = trueignorecase = trueprecomposeunicode = true [remote "origin"]url = git@github.com:michaelliao/learngit.gitfetch = +refs/heads/*:refs/remotes/origin/* [branch "master"]remote = originmerge = refs/heads/master [alias]last = log -1?別名就在[alias]后面,要刪除別名,直接把對應(yīng)的行刪掉即可。
而當前用戶的Git配置文件放在用戶主目錄下的一個隱藏文件.gitconfig中:
$ cat .gitconfig [alias]co = checkoutci = commitbr = branchst = status [user]name = Your Nameemail = your@email.com配置別名也可以直接修改這個文件,如果改錯了,可以刪掉文件重新通過命令配置。
?
轉(zhuǎn)載于:https://www.cnblogs.com/kunmomo/p/11364617.html
總結(jié)
以上是生活随笔為你收集整理的Git复习(七)之自定义git、忽略特殊文件、配置文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Git复习(六)之标签管理
- 下一篇: Git复习(八)之快速理解Git结构