首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

git仅添加已修改的更改并忽略未跟踪的文件

基础概念

Git 是一个分布式版本控制系统,用于跟踪文件的更改。它允许你记录每次更改,以便你可以回溯到任何特定版本。git add 命令用于将更改从工作目录添加到暂存区,准备进行提交。

相关优势

  1. 精确控制:可以精确地选择哪些更改要添加到暂存区。
  2. 避免误操作:通过忽略未跟踪的文件,可以避免意外地将不必要的文件添加到版本控制中。
  3. 提高效率:只处理已修改的更改,减少不必要的操作。

类型

  • 已跟踪文件的修改:这些文件已经存在于 Git 仓库中,并且已经被跟踪。
  • 未跟踪的文件:这些文件是新创建的,尚未被 Git 跟踪。

应用场景

当你只想提交已修改的文件,而不希望将新创建的文件(如临时文件、编译生成的文件等)添加到版本控制中时,可以使用这个方法。

如何实现

你可以使用 git add 命令结合一些选项来实现这一点:

代码语言:txt
复制
git add -u

或者

代码语言:txt
复制
git add --update

这两个命令的作用是只将已跟踪文件的修改添加到暂存区,而忽略未跟踪的文件。

示例代码

假设你有一个项目目录,其中包含一些已跟踪的文件和一些未跟踪的文件:

代码语言:txt
复制
# 查看当前状态
git status

# 输出可能类似于:
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git restore <file>..." to discard changes in working directory)
#       modified:   file1.txt
#       modified:   file2.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#       newfile.txt

你可以使用以下命令来添加已修改的文件:

代码语言:txt
复制
git add -u

再次查看状态:

代码语言:txt
复制
git status

# 输出可能类似于:
# On branch master
# Changes to be committed:
#   (use "git restore --staged <file>..." to unstage)
#       modified:   file1.txt
#       modified:   file2.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#       newfile.txt

可以看到,已修改的文件已经被添加到暂存区,而未跟踪的文件 newfile.txt 仍然未被跟踪。

参考链接

通过这种方式,你可以精确地控制哪些更改要添加到暂存区,从而避免将不必要的文件添加到版本控制中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • git 暂时忽略个别文件更改

    而我项目 Demo 项目目录是在自己管理一个统一存放项目的目录下,如果按他这个格式需要把 SDK 存放到统一项目目录上一层才可以,否则我就要修改 Visual Studio 解决方案配置,...终于让我找到一个办法就是临时修改这个文件,只在本地暂存,而且提交时候不会提示该文件被更新了。神奇 git 就是这么人性化,使用如下命令设置你需要临时忽略文件。...git update-index --assume-unchanged project.sln 而当你需要真的修改这个文件时候,把他从临时忽略列表再拉出来就好了,使用如下命令: git update-index...--no-assume-unchanged project.sln 这样就完美的解决了我们两个之间冲突问题,当你这样临时忽略一个文件后,在 Windows 下 TortoiseGit 客户端会显示一个灰色图标以代表这个文件被临时忽略了...,与彻底忽略灰白色图标是有差别的: ?

    2.6K20

    git添加被.gitignore忽略文件

    技术背景 在git操作中,有时候为了保障线上分支简洁性,会在.gitignore文件中屏蔽一些关键词,比如可以加一个*.txt来屏蔽掉项目中所有带txt后缀文件,还可以加上*test*来屏蔽所有的本地测试文件或者目录...那么如果想在被屏蔽文件中找几个特殊案例,传到线上版本去,要如何操作呢? 操作流程 在.gitignore文件添加屏蔽关键词,比如我们添加一个pdb后缀屏蔽关键词:*.pdb。...首先我们进入一个空目录,创建一个pdb后缀文件: $ ll total 8 drwxr-xr-x 2 dechin dechin 4096 Jun 16 09:25 ./ drwxr-xr-x 7...status,会跟前面一次得到一样结果,因此我们创建是一个pdb后缀文件,而在.gitignore文件中已经屏蔽了所有pdb后缀文件,因此git操作会自动忽略这个文件。...可以看到此时git状态中已经补充了对该pdb文件更新,如果要传到线上版本,补充一步git commit -m 'xxx'和git push即可。

    71330

    Git忽略本地文件修改,保留其在远程仓库状态.md

    Git忽略本地文件修改,保留其在远程仓库状态 项目中一些配置文件,需要在本地根据实际情况配置和修改,但同时这些配置仅在本地使用,并不想提交到远程仓库,这个时候使用.gitignore就办不到了...如引言中使用场景,在项目中有一些配置文件在远程仓库存在,但是本地修改并不具有普适性,因此是不需要提交到远程仓库,天真的我一开始将项目拉下后,直接在.gitingnore中添加了相关文件,但是在修改后发现...> 查看被忽略跟踪文件 git ls-files -v | grep '^h ' 恢复忽略文件,重新被版本控制 git update-index --no-assume-unchanged <file...但是查看git tree并没有任何跟踪文件是没有保存和提交状态,也就是说之前被设置忽略文件,犹如掩耳盗铃般,只是不被提交,但是在merge、checkout时候还是会被提示覆盖风险而导致git操作失败...git update-index --assume-unchanged,忽略不想提交文件忽略跟踪

    1.8K30

    git 如何删除已经 add 文件 (如何撤销放入缓存区文件修改)

    git 如何删除已经 add 文件 ( 如何撤销放入缓存区文件修改) 使用 git rm 命令即可,有两种选择: 一种是 git rm --cached "文件路径",不删除物理文件将该文件从缓存中删除...git --如何撤销放入缓存区(Index区)修改 修改或新增文件通过 git add --all命令全部加入缓存区(index区)之后,使用 git status 查看状态 (git status...-s 简单模式查看状态,第一列本地库和缓存区差异,第二列缓存区和工作目录差异), 提示使用 git reset HEAD 来取消缓存区修改。...不添加参数,撤销所有缓存区修改。 另外可以使用 git rm --cached 文件名 ,可以从缓存区移除文件,使该文件变为跟踪状态, 同时下次提交时从本地库中删除。...注: 没有带参数 git reset 命令,默认执行了 --mixed 参数,即用reset版本库到指定版本,并重置缓存区,在上面的命令中指定目录版本是HEAD,即当前版本,所以实际上没有任何修改

    11.6K30

    Git 中文参考(二)

    请注意,旧版本 Git 默认忽略删除文件;如果要添加修改或新增文件忽略删除文件,请使用--no-all选项。...子模块具有跟踪文件,因为子模块中修改内容或跟踪文件无法通过超级项目中git add添加以准备提交。 m 和 ? 递归应用。例如,如果子模块中嵌套子模块包含跟踪文件,则报告为 ?...对于二进制文件,输出两个-而不是0 0。 --shortstat 输出--stat格式最后一行,其中包含修改文件总数,以及添加删除行总数。...--diff-filter=[(A|C|D|M|R|T|U|X|B)…​[*]] 选择添加(A),复制(C),删除(D),修改(M),重命名(R)文件,其类型(即常规文件,符号链接,子模块...当 HEAD 与索引中记录相同时,子模块被认为是最新,未修改跟踪文件,并且子模块工作树中不存在未被忽略跟踪文件忽略文件被认为是可消耗,并且不会阻止子模块工作树被删除。

    20210

    Git 中文参考(八)

    git update-index 处理文件方式可以使用各种选项进行修改: OPTIONS --add 如果指定文件不在索引中,则添加它。默认行为是忽略文件。...相反,此选项设置/取消设置路径“假定更改”位。当“假设更改”位打开时,用户承诺不更改文件允许 Git 假定工作树文件与索引中记录文件匹配。...如果需要在索引中修改文件Git 将失败(优雅地),例如合并时提交;因此,如果上游更改了假定跟踪文件,则需要手动处理该情况。...请注意,在路径上设置此位并不意味着 Git 将检查文件内容以查看它是否更改 - 它使 Git 省略任何检查假设它更改而不是。...更改core.untrackedCache配置变量时,下次命令读取索引时,会将跟踪高速缓存添加到索引中或从索引中删除;当使用--[no-|force-]untracked-cache时,跟踪缓存会立即添加到索引中或从索引中删除

    14810

    你可能不知道15个 Git 命令

    1.修改最近提交 git commit --amend —-amend 允许你把阶段性更改(例如添加被遗忘文件)附加到上一次提交。...2.以交互方式添加文件选定部分 git add -p -p (或 —patch) 允许以交互形式选择每个跟踪文件中要提交部分。这样每次提交包含相关更改。...更多信息:git help stash 4.隐藏跟踪文件 git stash -u 在默认情况下,存储时不包括那些跟踪文件。为了改变这种行为包括那些文件,你需要使用 -u 参数。...还有一个 -a(-all)参数可以存储所有跟踪忽略文件,这种操作通常能是你不需要。...8.显示更改 git diff --staged 该命令显示所有阶段化更改添加到索引中更改),而与 git diff 相比,后者显示工作目录中更改(索引中没有更改)。

    79530

    git必知必会

    忽略文件配置:添加.gitignore文件 文件 .gitignore 格式规范如下: 所有空行或者以 # 开头行都会被 Git 忽略。 可以使用标准 glob 模式匹配。...修改 git add | # 添加指定文件, 指定目录(包括子目录)到暂存区 git add . # 添加当前目录所有文件到暂存区 # -p(或-patch)允许交互选择要提交每个跟踪文件各个部分...git add . && git stash # 将新储藏推送到栈上 git stash save 'message' # 储藏修改留下stash信息 # -p(或-patch)允许交互选择要提交每个跟踪文件各个部分...这样每个提交只包含相关更改git stash -p # 默认情况下,当存储时,不包括跟踪文件。 为了更改该行为包含这些文件,您需要使用-u参数。...还有-a(-all)可以完全存储跟踪忽略文件,这可能是您通常不需要东西。

    96620

    Git中文命令大全

    修改和删除索引条目以匹配工作树 --no-all, --ignore-removal # 通过添加索引未知文件和工作树中修改文件来更新索引, 但忽略已从工作树中删除文件当没有使用...# 除了更改文件名称之外, 还会显示正在执行文本更改 -u[], --untracked-files[=] # 显示跟踪文件 --ignore-submodules...,不Munge时间路径名,使用完全无效输出字段终止符 --name-only # 显示更改文件名称...只有干净工作树(没有跟踪文件,并且没有修改跟踪文件)可以被删除 unlock # 解锁一个工作树,允许它被修剪,移动或删除...# 除了在工作树中跟踪文件中搜索外,还可以在跟踪文件中搜索 --no-exclude-standard # 通过不尊重.gitignore 机制来搜索被忽略文件

    24200

    Git系列之查看状态

    换句话说,所有跟踪文件在上次提交后都未被更改过。 此外,上面的信息还表明,当前目录下没有出现任何处于跟踪状态文件,否则 Git 会在这里列出来。...跟踪文件意味着 Git 在之前快照(提交)中没有这些文件Git 不会自动将之纳入跟踪范围,除非你明明白白地告诉它“我需要跟踪文件”, 这样处理让你不必担心将生成二进制文件或其它不想被跟踪文件包含进来...git add 命令使用文件或目录路径作为参数;如果参数是目录路径,该命令将递归地跟踪该目录下所有文件。 3、暂存修改文件 现在我们来修改一个已被跟踪文件。...LICENSE.txt 新添加跟踪文件前面有 ?? 标记,新添加到暂存区中文件前面有 A 标记,修改文件前面有 M 标记。...5、忽略文件 一般我们总会有些文件无需纳入 Git 管理,也不希望它们总出现在跟踪文件列表。 通常都是些自动生成文件,比如日志文件,或者编译过程中创建临时文件等。

    1.3K10

    如何在CentOS 7上使用Etckeeper进行版本控制管理 etc

    与在进行更改之前制作配置文件副本旧备用数据库相反,etckeeper允许您使用Git,Mercurial,Bazaar或Darcs存储库跟踪修改,就像您对软件开发项目所做那样。...没有服务器同学可以在这里购买,不过我个人更推荐您使用免费腾讯云开发者实验室进行试验,学会安装后再购买服务器。 etckeeper跟踪文件权限,元数据和更改。...该.git目录包含几个配置和描述文件以及其他用于Git本身子目录。该.gitignore文件指定git忽略明确跟踪文件,旨在由etckeeper完整管理。不建议手动编辑,但有一个例外。...sudo nano .gitignore 该文件最后一行# end section managed by etckeeper将被读取。添加忽略文件文件名,在此行之上每行添加一个。...无论您选择哪种VCS,etckeeper都会帮助您掌握配置文件确保在需要撤消更改修改功能时始终可以回滚到先前状态。

    1.9K10

    Git使用(一):创建本地仓库并在其中添加修改、删除文件

    创建本地版本库 版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以...显示隐藏文件夹 向本地版本库添加文件 版本库:”.git“目录就是版本库,将来文件都需要保存到版本库中。工作目录:包含”.git“目录目录,也就是.git目录上一级目录就是工作目录。...文件修改与提交 首先打开HelloWorld.txt文件,进行修改添加一些内容。 ? 可以看到文件出现了叹号。 ?...文件修改与提交4 ? 文件修改与提交5 点击关闭。 同样操作,我们再更改一次。 ? 文件修改与提交6 在空白处右键,选择TortoiseGit(T)------>显示日志; ?...删除10 总结 本文讲解了利用TortoiseGit创建本地仓库、在本地仓库提交文件修改文件、删除还原文件操作。只需要平时多用,就可以掌握。 欢迎关注 扫下方二维码即可关注:

    2.3K30

    Git 中文参考(四)

    对于二进制文件,输出两个-而不是0 0。 --shortstat 输出--stat格式最后一行,其中包含修改文件总数,以及添加删除行数量。...--diff-filter=[(A|C|D|M|R|T|U|X|B)…​[*]] 选择添加(A),复制(C),删除(D),修改(M),重命名(R)文件,其类型(即常规文件,符号链接,子模块...当使用“跟踪”时,如果子模块包含跟踪内容(但仍会扫描修改内容),则子模块不会被视为脏。...对于二进制文件,输出两个-而不是0 0。 --shortstat 输出--stat格式最后一行,其中包含修改文件总数,以及添加删除行数量。...当使用“跟踪”时,如果子模块包含跟踪内容(但仍会扫描修改内容),则子模块不会被视为脏。

    21210
    领券