別名.
我可以使用這個命令檢視repository的歷史 git log --all --graph --decorate --oneline:
這個命令可能比較常用, 但是又比較長.
這時我可以建立一個自己的命令, 作為上面命令的別名.
假設我想使用git hist這個命令:
git說這個命令不存在.
這時就可以使用git config alias.xxx命令去建立一個命令的別名:
其中--global表示這個別名是全域性的(使用者範圍內的, 不只限於這個repository), 然後alias.xxx 的xxx就是後邊雙引號內的命令的別名.
上圖可以看到git hist的執行效果和之前的那一串命令是一樣的.
下面看一下 git config的東西都儲存在哪了, 先執行這個命令: git config --list --show-origin.
可以看到在windows 10下, 是在user的下面:
然後可以開啟這個檔案看看:
所以可以在這裡直接修改別名也行.
忽略檔案.
在專案裡新增一個檔案 nouse.txt.
假設這是一個專案配置檔案, 不能刪除, 但是由於裡面儲存著本機的安全資訊, 又不能上傳到遠端倉庫.
我可以小心翼翼的不去add這個檔案. 但是git確實有這樣一個命令可以把該檔案排除在外, 以後也不去管他.
git使用一個叫.gitignore的檔案去做這項工作.
可以看一下working directory:
裡面沒有這個檔案. 所以建立這個檔案.
Git忽略的模式是這樣的:
針對具體的檔案: 就寫檔名即可.
針對某種型別的檔案: *.字尾名
針對資料夾: 資料夾名/
那麼我就把nouse.txt新增到該檔案:
然後檢視狀態:
可以看到.gitignore檔案已經起作用了, nouse.txt已經不再被追蹤了.
但是.gitignore檔案還是一個需要被追蹤的檔案, 所以針對這個檔案還是需要走正常的流程的.
下面是另一個例子, 假設我專案中有一些log檔案是以.log結尾的 ,例如 apache.log和iis.log等等..
這些log檔案不應該被git所管理, 所以開啟.gitignore檔案, 新增: *.log:
然後檢視狀態:
可以看到log檔案都被排除了.
另外一種情況就是資料夾, 假設log都放在logs資料夾下了.
\
然後檢視狀態:
可以看到這個未被追蹤的logs目錄. 這是因為logs目錄下的檔案是被檢測到了並且還沒有被從git的管轄範圍內排除.
這時編輯.gitignore檔案, 把logs/新增進去:
檢視狀態:
這樣logs資料夾就被排除了.
推送回origin.
檢視一下剛才這個專案的狀態:
裡面寫著我的分支比origin/master(我這個專案放在了github上面)領先了6個commit.
所以要把這些變化推送到github上.
首先應該git pull origin master:
因為我並沒有在別的地方修改這個倉庫的程式碼, 所以遠端倉庫沒有更新.
現在把變化推送到github, git push origin master:
之前也寫過, origin就是github這個倉庫的引用/別名, master是它的分支.
到github就可以看到整個commit 歷史了:
今天提到的命令有: git config alias.xxx, git config --list --show-origin, git pull origin master, git push origin master
還有.gitignore檔案.