我在一个变更集中有一堆文件,但我想特别忽略一个修改过的文件。在git状态后看起来如下:
# modified: main/dontcheckmein.txt
# deleted: main/plzcheckmein.c
# deleted: main/plzcheckmein2.c
...
有没有一种方法可以让我添加git,但忽略我不想触摸的一个文本文件?类似于:
git add -u -except main/dontcheckmein.txt
我在一个变更集中有一堆文件,但我想特别忽略一个修改过的文件。在git状态后看起来如下:
# modified: main/dontcheckmein.txt
# deleted: main/plzcheckmein.c
# deleted: main/plzcheckmein2.c
...
有没有一种方法可以让我添加git,但忽略我不想触摸的一个文本文件?类似于:
git add -u -except main/dontcheckmein.txt
当前回答
git add -u
git reset -- main/dontcheckmein.txt
注意:Git随后为此添加了特殊语法,其他答案对此进行了解释。
其他回答
虽然本·杰克逊是正确的,但我想我也会补充一下我是如何使用这个解决方案的。下面是我使用的一个非常简单的脚本(我称之为gitadd)来添加所有更改,除了我在一个名为.gittrackignore的文件中列出的少数更改(非常类似于.gitignore的工作方式)。
#!/bin/bash
set -e
git add -A
git reset `cat .gittrackignore`
这就是我当前的.gittrackignore的样子。
project.properties
我正在开发一个Android项目,在部署时我从命令行编译。这个项目依赖于SherlockActionBar,因此需要在project.properties中引用它,但这会影响编译,所以现在我只需键入gitadd并将所有更改添加到git中,而不必每次都取消添加project.properties。
对于文件
git add -u
git reset -- main/dontcheckmein.txt
对于文件夹
git add -u
git reset -- main/*
不是直接按照你的要求,因为它不是一个命令就能实现的,但结果应该是你想要的。
通过将所有文件添加到临时区域后
git add -u
键入gitstatus将建议您
git restore --staged main/dontcheckmein.txt
为了将更改保存在文件中,但不是为了提交,我这样做了
git添加。
git reset--main/dontcheckmein.txt
gitcommit-m“提交消息”
要验证文件是否被排除,请执行以下操作
git状态
git add .
git reset main/dontcheckmein.txt