Git常用操作
1.git設置自動轉換換行符
使用場景:
不同系統下的換行符:
Unix/Linux:LF
Mac OS:CR(Mac OS X已經改成和Unix/Linx一樣使用LF)
windows:CRLF
跨平臺協作時,需要統一換行符,一般的做法是在提交時自動將CRLF轉換爲LF,檢出時自動將LF轉換爲CRLF。
操作方法:
提交和檢出均做轉換:
git config --global core.autocrlf true
提交時轉換,檢出時不做轉換:
git config --global core.autocrlf input
提交和檢出均不做轉換:
git config --global core.autocrlf false
拒絕提交包含混合換行符的文件:
git config --global core.safecrlf true
允許提交包含混合換行符的文件:
git config --global core.safecrlf false
提交包含混合換行符的文件時給出警告:
git config --global core.safecrlf warn
2.git設置指定文件不做換行符轉換
使用場景:
跨平臺協作時,一般都設置了LF和CRLF的自動轉換,但是對於有些文件,比如證書文件,換行符變了以後就不生效了,所以我們希望git不要對這種文件做換行符的轉換。
操作方法:
在根目錄新建一個.gitattributes文件,如果已經有該文件,則在該文件中追加如下內容:
fileName.txt eol=lf
或者:
fileName.txt binary
附:windows系統無法直接創建.gitattributes文件,需要使用git創建
vi .gitattributes # 創建.gitattribute文件,並向文件中追加內容
i # 按下i鍵,最下面一行變爲“-- insert --”時,可以開始輸入內容
esc # 輸入完成後,按下esc完成編輯,最下面一行變成空白
:wq # 輸入:wq並回車,保存並退出編輯(:q 是退出不保存)
3.git submodule
使用場景:
開發過程中,經常會有一些通用的部分希望抽取出來做成一個公共庫來提供給別的工程來使用,而公共代碼庫的版本管理是個麻煩的事情。git的git submodule可以解決這個問題。
操作方法:
爲當前工程添加submodule
git submodule add url path # url:子模塊的倉庫地址 path:子模塊所在的路徑,該路徑不能以/結尾,也不能是已有的目錄
執行完成以後,會在當前工程根目錄下生成一個.gitmodules文件,記錄了子模塊的信息,最後提交。
刪除submodule:
先在.submodules文件中刪除相應的配置信息,再執行
git rm -cached
將子模塊所在的文件從git中刪除。
下載submodule(git clone時,submodule的內容並不會自動下載下來,需要執行下面的命令,將submodule的內容下載下來):
git submodule init
git submodule update
4.移動文件
使用場景:
需要移動文件時,若手動移動,再提交的話,原來的文件會被標記爲刪除,移動後的文件會被標記爲新增,不便於管理代碼的變更。
操作方法:
git mv src dest
5.代碼覆蓋
用遠程的代碼覆蓋本地代碼:
git fetch --all
git reset --hard origin/branchName
git pull
本地代碼覆蓋遠程(強制推送本地代碼至遠程倉庫):
git push origin branchName -f
或
git push origin branchName --force
6.使用git lfs上傳大文件
使用場景:
git默認的上傳文件大小限制是100M,如果有二進制文件大小超過100M,且二進制文件不需要git跟蹤具體的變化,在不修改git配置的情況下,該文件提交不上去,且會使git庫文件大小迅速膨脹。
操作方法:
git默認是不帶lfs的,需要下載安裝包進行安裝,安裝方法參考以下鏈接:https://git-lfs.github.com/
根據安裝嚮導安裝下載的 .exe 包後,啓動一個新的命令行窗口,輸入:
git lfs install
然後對二進制文件執行track命令:
git lfs track fileName.bin
最後提交.gitattributes文件和二進制文件
參考鏈接1:https://www.jianshu.com/p/f13ef9e538e0
參考鏈接2:https://blog.csdn.net/oyji1992/article/details/73695693
參考鏈接3:https://git-lfs.github.com/
參考鏈接4:https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E5%AD%90%E6%A8%A1%E5%9D%97