thinkphp項目上傳到github,為什么缺少很多文件
問題:
把tp5項目push到碼雲(類似github)上,為什么沒有thinkphp這個核心庫?
然后我看了下碼雲和github上,官方的thinkphp5項目,也是沒有thinkphp這個核心庫的?為什么呢?如果我在上傳自己的tp5項目時想把thinkphp核心庫同時push上去,應該怎么做?
解答:
.gitignore文件忽略掉了
配置.gitignore文件把thinkphp刪掉就ok了
如下圖
Git中.gitignore文件的使用
在我們使用git的時候,有時候就不想傳一些與代碼無關的文件到遠程倉庫中,比如說編譯后的文件,.gitignore就可以幫助我們處理這些文件。
-
生成.gitignore文件
在git bash中使用命令touch .gitignore,就可以在當前目錄下生成.gitignore文件 -
編輯.gitignore文件
在git bash中,使用vi .gitignore就可以編輯此文件,編輯結束后按Esc然后按:,最后輸入wq表示保存退出,輸入q表示不保存退出。這與在Linux終端中的操作是一樣的。 -
.gitignore文件內容的規則
-
/ 表示目錄
比如/A/*就表示忽略A目錄下所有內容 -
* 表示匹配多個字符
上面忽略A目錄下所有內容使用的就是*,忽略iml結尾的文件即使用*.iml -
[]表示匹配多個單個字符
[abc]就是代表a、b、c中任何一個字符即可 -
! 表示跟蹤某類文件
比如 /*,!*.c,表示忽略所有文件,但是跟蹤.c結尾的文件,這樣.c結尾的文件就不會被忽略了
-
-
在使用.gitignore文件后如何刪除遠程倉庫中以前上傳的此類文件而保留本地文件
比如我們在使用git和github的時候,之前沒有寫.gitignore文件,就上傳了一些沒有必要的文件,在添加了.gitignore文件后,就想刪除遠程倉庫中的文件卻想保存本地的文件。
這時候不可以直接使用git rm directory,這樣會刪除本地倉庫的文件。
可以使用git rm -r –cached directory來刪除緩沖,然后進行commit和push,這樣會發現遠程倉庫中的不必要文件就被刪除了,以后可以直接使用git add -A來添加修改的內容,上傳的文件就會受到.gitignore文件的內容約束。
.gitignore文件的格式規范:
A:#為注釋
B:可以使用shell所使用的正則表達式來進行模式匹配
C:匹配模式最后跟"/"說明要忽略的是目錄
D:使用!取反(例如目錄中包含 test.a,並且gitignore文件中包含 *.[oa],如果在文件中加入 !test.a 表明忽略除test.a文件以外的后綴名為.a或者.o的文件)