更新 .gitignore 的正确姿势

引言

此前我对 Git 的错误认知导致我一直认为 .gitignore 文件是不可更新的,我此前认为 .gitignore 文件只有在项目创建时就会被 Git 读取(这似乎是前端群里之前讨论这个问题所得出的结论,加之我个人在此前确实尝试过直接修改 .gitignore 文件的内容但其并未生效,这就导致导致我产生了这样一种错误认知),同时这也导致我平时在搭建自己的项目时通常对于 .gitignore 的撰写十分小心谨慎,生怕漏了什么忘记 ignore 掉的文件,就,很不舒服。

然而这只是我之前没有深究该问题所导致的错误断言,实际上 .gitignore 显然是可更新的(否则那些开源大项目总不可能每次为了增加 ignore 的文件就删库重开罢)

正文

我们需要对文件重新进行 track 来使得我们更新的 .gitignore 文件配置生效

▲什么是 track?Git会跟踪每个文件的变动,这样一种跟踪的过程便是 track

我们只需要执行命令如下:

git rm -r --cached .    # 从已跟踪文件清单中移除所有文件

之后再 commit 更改即可

git add .    # 重新添加所有文件(在这一步中 .gitignore 的配置将会生效)
git commit -m "chore: update .gitignore"    # 提交更改
git push    # 推送提交

关于 git rm 命令,我们可以在 Pro Git 中找到其详细的使用说明

Pro Git 移除文件 Ⅰ
Pro Git 移除文件 Ⅱ

可以看到,git rm -r --cached 命令可以使我们停止对特定文件的追踪,这其实也就意味着,如果我们明确知道我们需要停止对某一文件的追踪,我们实际上也可以不将其写入 .gitignore 中也能实现,只不过不写入 .gitignore 的话如果之后你又使用了 git add . 命令 ,那很抱歉,这个文件又会被重新 track。

附言

关于 git rm 的详细内容参见 Git 官方所发行的 Pro Git 46-47页(版本 2.1.57-1-g73d0e36c, 2021-10-16)

评论

  1. kawhicurry
    Linux Chrome 101.0.4951.64
    3月前
    2022-5-19 16:15:58

    git add .gitignore

    • 博主
      kawhicurry
      Windows Chrome 102.0.5005.63
      2月前
      2022-5-29 13:22:32

      直接添加实际上并不能使 ignore 文件直接生效(

      • kawhicurry
        Moroshima
        Linux Chrome 103.0.0.0
        2周前
        2022-7-26 16:33:53

        并不是不能直接生效,而是你一开始存在的文件影响了后面的生效,直到你rm –cache。或者我们换个方法,用filter-branch/fileter-repo(

        • 博主
          kawhicurry
          Windows Chrome 103.0.0.0
          6天前
          2022-8-02 3:12:07

          确实如此(

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇