Git基本命令 -- 別名 + 忽略 + 推送

solenovex發表於2018-03-15

別名.

我可以使用這個命令檢視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檔案.

相關文章