git過濾掉不需要上傳的文件
在git管理中可以手動(dòng)創(chuàng)建.gitignore文件來設(shè)置乍恐。
隨便創(chuàng)一個(gè)文件,比如txt文本~
在里面添加如下幾句話:
# git ignore
xcuserdata
.DS_Store
以上兩條的命名規(guī)則是
忽略所有包含xcuserdata的文件(夾)
忽略所有文件夾中后綴是.DS_Store的文件
然后把文件的名字改成.gitignore(注意在.前面是沒有任何字符的)翰绊,并把文件放在git管理目錄的根目錄下胆屿。
關(guān)于.gitignore文件的內(nèi)容規(guī)則箭养,先Mark下慕嚷,之后更新哈
.gitignore無效,不能過濾某些文件
描述:
在.gitignore添加file1文件,以過濾該文件喝检,但是通過Git status查看仍顯示file1文件的狀態(tài)嗅辣。
原因:
在git庫(kù)中已存在了這個(gè)文件,之前push提交過該文件挠说。
.gitignore文件只對(duì)還沒有加入版本管理的文件起作用澡谭,如果之前已經(jīng)用git把這些文件納入了版本庫(kù),就不起作用了
解決:
需要在git庫(kù)中刪除該文件损俭,并更新蛙奖。
然后再次git status查看狀態(tài),file1文件不再顯示狀態(tài)杆兵。
gitignore文件中添加新過濾文件外永,但是此文件已經(jīng)提交到遠(yuǎn)程庫(kù),如何解決拧咳?
描述:
gitignore文件中添加新過濾文件,但是此文件已經(jīng)提交到遠(yuǎn)程庫(kù)囚灼,如何解決骆膝?
解決:
- 為避免沖突需要先同步下遠(yuǎn)程倉(cāng)庫(kù):
git pull
- 在本地項(xiàng)目目錄下刪除緩存:
git rm -r --cached .
- 再次add所有文件,輸入以下命令,再次將項(xiàng)目中所有文件添加到本地倉(cāng)庫(kù)緩存中 :
git add .
- 添加commit灶体,提交到遠(yuǎn)程庫(kù):
git commit -m "filter new files"
&git push
關(guān)于 git的rm 相關(guān)參數(shù)可參考這里:git如何移除某文件夾的版本控制
比如我在我的AR Demo中想要忽略libiPhone-lib.a庫(kù)(太大了阅签,貌似不能超過100M),之前的Commit中已經(jīng)提交到本地版本庫(kù)了蝎抽。添加.gitignore并執(zhí)行上述操作后,通過git status
命令政钟,可以看到:
new file: .gitignore
deleted: ARFuTest/Libraries/libiPhone-lib.a```