搜尋

首頁  >  問答  >  主體

github - git 如何過濾檔案或目錄

我本地搭建的git 然後關聯到github倉庫,伺服器從github上拉取內容。
現在想在提交的時候過濾掉配置文件,因為本地和伺服器上的配置不同
然後我寫了一個.gitignore文件,裡面放的配置文件目錄,這種方法試了不行。本地變更過的推送到github上,伺服器從github在pull ,還是把設定檔目錄的變更拉取過來了,沒有過濾掉。

第二種方法直接在本地的.gitinfoexclude加入設定檔目錄還是沒能過濾掉,請問是怎麼回事?下面是寫的規則,.gitignore是在伺服器和本地都添加了,第二個是只添加在了本地的

PHP中文网PHP中文网2799 天前892

全部回覆(3)我來回復

  • 世界只因有你

    世界只因有你2017-05-02 09:52:48

    首先樓主要搞清楚一點,本地在添加到暫存區時就會自動讀取.gitignore文件,根据其中的设置过滤相应的文件。所以楼主应该在添加到暂存区之前,就判断.gitignore文件是否生效,而不是推送到远程了才判断。
    你可以通过git status -s命令查看那些想过滤的文件是否被过滤掉,如果没有,那么很可能是因为那些文件之前已经在暂存区,.gitignore文件是無法過濾那些之前在暫存區已有的文件的,這時你可以使用下面的命令:

    git rm --cached files-you-want-to-ignore

    這時你再用git status -s指令查看如果的確忽略了,那你就可以進行後面的add、commit、push操作了。

    回覆
    0
  • 阿神

    阿神2017-05-02 09:52:48

    你給了過濾文件的方法了.
    可能這些文件已經加入到了倉庫中,要不跟踪倉庫中的文件 按照以下命令
    忽略跟踪

    $ git update-index --assume-unchanged /path/to/file       

    恢復追蹤

    $ git update-index --no-assume-unchanged /path/to/file  

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-02 09:52:48

    .gitignore 规则没生效 要先git rm -r --cached

    回覆
    0
  • 取消回覆