一、概念解釋
在Git的版本控制中,有三種狀態: 已提交(committed)、已修改(modified)、已暫存(staged)。而第四種狀態則是untracked。當新建一個文件時,如果不去add和commit,便處於未追蹤狀態。
未追蹤(state: untracked)表示此文件在Git的管理下從未被納入版本控制中,也就是這個文件不在Git代碼庫里。通常情況下,我們會忽略一些不需要被版本控制的文件而不做add和commit。
但有時候,不慎將一些個人配置文件、敏感信息文件忘記了add和commit,這時就會造成安全隱患。理解untracked對於排查漏洞和減少安全事故至關重要。
二、解決方法
有時候我們想臨時把某些本來未被追蹤的文件或目錄納入版本控制,可以使用git add命令添加進暫存區。如果某些文件被添加進來以後,發現這些文件其實不想納入版本控制,那麼可以使用 git rm –cached 命令將其從暫存區移除。
如果想要忽略某個文件或文件夾,可以通過在.gitignore文件中,添加需要忽略的文件名或文件路徑,來達到這個目的。
# .gitignore 文件內容 *.log /node_modules/ config.js /secret/
上述.gitignore文件中包含了屏蔽所有.log結尾的文件、屏蔽node_modules目錄下的所有文件、屏蔽config.js文件,以及屏蔽secret目錄里的所有文件。這樣,Git就會自動忽略這些文件或文件夾,無論其狀態如何。
三、常見問題及解決方案
1. 如何查看當前文件的狀態是否為untracked?
$ git status
可以查看所有文件的狀態,包括是否處於untracked狀態。
2. 如何將所有的未排除文件設置為納入版本控制狀態?
$ git add .
通過 “.” ,可以將所有未排除的文件添加到版本控制中。
3. 進行忽略文件排除後,之前已經存在的untracked文件是否需要手工納入版本控制?
需要手工添加到版本控制中。對 untracked 文件手動 git add 後,僅該文件會被納入版本控制中,其他被逐層排除的文件不會納入.
四、總結
理解Git工作區中的狀態,以及如何切換狀態,是我們熟練使用Git的必備技能。尤其對於團隊協作、安全等重要環節,更是需要我們加強對Git的掌控。遇到未追蹤文件,可以通過手工對其add和commit,或者通過.gitignore文件的配置,實現文件狀態的轉換。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/206290.html