天天看點

git忽略某檔案(commit時不送出該檔案)

在使用HbuilderX開發小程式時,會将代碼編譯打包為一個unpackage檔案,這個檔案将在微信開發者工具中打開

而這種打包的檔案是可以不要commit的,如果在建立倉庫之初,沒有将這個檔案夾忽略掉,後面再.gitignore中添加也是不管用的,現在可以使用下面的方法解決:

第一步:git rm -r -n —cached ./unpackage  (-n是為了不删掉檔案)

第二步:git rm -r —cached ./unpackage

第三步:修改.gitignore檔案

第四步:送出,push unpackage 及 .gitignore檔案

最後 本地修改檔案,再送出發現已經成功了.

<code>需要特别注意的是:</code>

<code>1).gitignore隻能忽略那些原來沒有被track的檔案,如果某些檔案已經被納入了版本管理中,則修改.gitignore是無效的。</code>

<code>2)想要.gitignore起作用,必須要在這些檔案不在暫存區中才可以,.gitignore檔案隻是忽略沒有被staged(cached)檔案,</code>

<code>   </code><code>對于已經被staged檔案,加入ignore檔案時一定要先從staged移除,才可以忽略。</code>

額外說明:git庫所在的檔案夾中的檔案大緻有4種狀态

Untracked:

<code>未跟蹤, 此檔案在檔案夾中, 但并沒有加入到git庫, 不參與版本控制. 通過git add 狀态變為Staged.</code>

<code>Unmodify:</code>

<code>檔案已經入庫, 未修改, 即版本庫中的檔案快照内容與檔案夾中完全一緻. 這種類型的檔案有兩種去處, 如果它被修改,</code>

<code>而變為Modified. 如果使用git </code><code>rm</code><code>移出版本庫, 則成為Untracked檔案</code>

<code>Modified:</code>

<code>檔案已修改, 僅僅是修改, 并沒有進行其他的操作. 這個檔案也有兩個去處, 通過git add可進入暫存staged狀态,</code>

<code>使用git checkout 則丢棄修改過, 傳回到unmodify狀态, 這個git checkout即從庫中取出檔案, 覆寫目前修改</code>

<code>Staged:</code>

<code>暫存狀态. 執行git commit則将修改同步到庫中, 這時庫中的檔案和本地檔案又變為一緻, 檔案為Unmodify狀态.</code>

<code>執行git reset HEAD filename取消暫存, 檔案狀态為Modified</code>

<code>Git 狀态 untracked 和 not staged的差別</code>

<code>1)untrack     表示是新檔案,沒有被add過,是為跟蹤的意思。</code>

<code>2)not staged  表示add過的檔案,即跟蹤檔案,再次修改沒有add,就是沒有暫存的意思</code>