【问题标题】:How can I remove a file from Git within IntelliJ VCS?如何在 IntelliJ VCS 中从 Git 中删除文件?
【发布时间】:2016-05-09 10:08:45
【问题描述】:

VCS 有一个 Add 选项(Git Add),但似乎缺少 Git Remove。

使用 VCS 删除 Git 的惯用方式是什么?

【问题讨论】:

    标签: git intellij-idea version-control


    【解决方案1】:

    您可以使用External Tools将功能添加到IDEA。

    如图所示,然后可以右键任意文件/文件夹选择External Tools>git rm --cache -r?

    【讨论】:

      【解决方案2】:
      1. 将文件复制到本地磁盘。
      2. 从项目中删除。
      3. 提交您的更改。
      4. 将此文件或文件夹添加到您的 .gitignore 规则中。
      5. 再次插入文件并拒绝将其添加到 Git 的建议。

      【讨论】:

        【解决方案3】:

        如果您在更改集上有当前本地更改,并且您不小心将文件添加到 Git,它会在您的 IDE 上变为绿色。

        要从 git 中删除它,我只是

        right click on the file>Git>Rollback
        

        瞧,文件将变为灰色 提交时不会包含/添加到 git。

        (*确保您在某处有该文件的副本作为备份。)

        【讨论】:

        • 并非所有文件都存在回滚选项。
        【解决方案4】:

        鉴于您的项目已经链接到 git 存储库,您可以使用标准 IntelliJ 功能“删除”文件。

        在项目窗格中,聚焦文件并点击Delete 键。会出现“安全删除”弹窗,点击OK

        现在在9: Version Control -> Local Changes 下观察该文件以“灰色”列出 - 当您提交并推送到您的 git 存储库时,该文件将在当前分支上被删除。

        编辑:如果这些是 IntelliJ 文件,这将变得更加困难。

        首先,关闭 IntelliJ,列出要从 repo 中删除的确切文件,并在本地文件系统上复制这些文件。

        然后使用git rm 删除它们,然后提交。

        下一步,添加.gitignore 文件以忽略本地 IntelliJ 文件。一个好的开始是*.iml.idea

        最后,恢复您复制的文件并重新启动 IntelliJ。

        【讨论】:

        • 不幸的是,我想从 Git 存储库中删除的大多数文件都是 IntelliJ 项目文件。
        • 这不仅会从 VCS 中删除文件,还会将其从本地磁盘中删除。
        • 一个有趣的怪癖是,有时当您使用 intellij 删除文件时,intellij 似乎足够聪明,可以识别您何时实际复制了文件,因此它可以显示为“重命名” ' 而不是从 git 中删除。
        【解决方案5】:

        使用 Intellij 将文件从绿色(暂存)更改为红色(未跟踪):

        1. 右键单击文件
        2. 将鼠标悬停在Git 上(git 窗格将展开)
        3. 点击Rollback...(旧版本为Revert
        4. 检查Delete local copies of added files 是否未选中并单击Rollback 按钮

        这不会删除文件,只会取消暂存它(从 gi​​t 的索引中删除它)。

        【讨论】:

        • @AksharPatel 这不是真的。如果文件为绿色(使用 git add 添加),则表示该文件是新的,未修改。如果你使用 Intellij 中的“revert”选项取消跟踪它,git 只会取消跟踪文件,但文件在你的项目中不会受到影响。如果文件被修改 - 在 Intellij 中显示为蓝色 - 只有在 git revert 之后您才会丢失任何文件修改。
        • @Jyapx 啊。这就说得通了。通过更改,我的意思是蓝色的,这就是为什么我发表评论而不是编辑答案。
        【解决方案6】:

        您可能将文件添加过快地添加到 Git,因此您的文件是绿色(暂存)而不是红色(未跟踪)。

        正确的做法是在终端中使用命令行。 git status 将提示让git reset HEAD <file> 取消跟踪您的文件。

        然后您的文件将再次被取消跟踪(红色)。

        如有疑问,您可以在当前使用自定义 Intellij 存储库之前保存,使用菜单 VCS -> Local History-> Put Label

        【讨论】:

        • git 重置 HEAD 。将其从绿色(已跟踪)更改为红色(未跟踪)+1
        【解决方案7】:

        在终端中,使用git rm --cached -r .idea/。 这将从 GIT 索引中删除文件,但将文件保留在本地。

        【讨论】:

        • 为什么没有ui按钮?
        • 完美!我在项目的主目录中使用 git rm --cached -r ./ 从 git 中完全删除,并按照我的需要添加它们。谢了哥们! :)
        • 这应该是选择的答案,因为它不会完全删除文件,只是从 GIT 中取消暂存。谢谢!
        猜你喜欢
        • 2015-04-04
        • 2021-11-28
        • 2012-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-02
        • 2012-05-22
        • 2011-01-04
        相关资源
        最近更新 更多