如何在不暂存的情况下 git 添加新文件?

2024-04-19

为了有效地(并按预期)使用 git,我进行了小的原子提交,而我确实有更长的会话,我所做的不仅仅是一件事。因此,我大量使用git add -p。不过,这不适用于全新的文件,因为我以后往往会忘记它们。

我想做的是告诉git那里is一个新文件,我希望它能够跟踪,但是不上演:

示例:跑步git status产生:

# On branch my-current-branch
# Your branch is ahead of 'origin/my-current-branch' by 2 commits.
#
# Changes to be committed:
#
<<STAGED SECTION>> // A
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
<<UNSTAGED-YET-KNOWN SECTION>> // B
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
<<UNKNOWN SECTION>> // C

如果我有一个文件foo在C部分,我说git add foo它将转到 A 部分。如果我说git add -N foo它将同时发送到 A 和 B。但是,这意味着它将包含在下一次提交中,至少因为存在一个新文件。

我希望它只出现在 B 部分,这样我以后就可以将它添加到 A 中git add -p or git add foo(管他呢)。

Edit

关于add -N解决方案,这不起作用,因为如果我在说过之后尝试提交add -N and not正确添加后,git 会抱怨,因为它不知道如何处理空文件:

foo: not added yet
error: Error building trees

使用 Git 2.5,git add -N/--intent-to-add实际上是正确的解决方案。
新文件不会成为下一次提交的一部分。

See 提交 d95d728 https://github.com/git/git/commit/d95d728aba06a34394d15466045cbdabdada58a2作者:Nguyễn Thái Ngọc Duy (pclouds https://github.com/pclouds)(并入d0c692263 https://github.com/git/git/commit/d0c692263f453f267ddd82b90b1a2fcff9d45f5f):

diff-lib.c:调整 diff 中 i-t-a 条目的位置

Problem:

添加的条目“git add -N“ 提醒用户,这样他们就不会忘记在提交之前添加它们。这些条目出现在索引中,即使它们不是真实的。它们在索引中的存在会导致混乱”git status“ 像这样:

On branch master
Changes to be committed:
        new file:   foo

Changes not staged for commit:
        modified:   foo

如果你做了一个“git commit", "foo“ 即使如此,也不会被包括在内 ”status“报告为”to be committed".

解决方案:

该补丁将输出更改为

On branch master
Changes not staged for commit:
        new file:   foo

no changes added to commit

这意味着:

将此类路径视为“尚未添加到索引中,但 Git 已经知道它们”; ”git diff HEAD" and "git diff --cached HEAD“不应该谈论它们,并且”git diff" 应该将它们显示为新的。 + 尚未添加到索引的文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不暂存的情况下 git 添加新文件? 的相关文章

  • Git:当文件位于嵌套 git 存储库中时强制“添加”

    我想添加一个包含在父存储库中的嵌套 git 存储库中的文件 我正在开发一个在我的项目中使用的库 然而git add nested repo myfile不做任何事情 我可以尝试重命名 git文件在进行提交时 但是当我重命名回时 我担心会出现
  • Egit 无法检测到本机 Git 的安装路径“gitPrefix”

    如何解决这个问题 警告 EGit 无法检测到本机 Git 的安装路径 gitPrefix 因此 Egit 无法尊重系统级别 Git 设置可以在本机 Git 安装目录下的 gitPrefix etc gitconfig 中配置 正如我在 eg
  • 如何使用它们的更改来解决选择冲突?

    My git cherry pick FOO产生了冲突 我可以检查冲突的文件并删除之间的行 lt lt lt lt lt lt lt and 以及冲突标记本身 但我希望有一种更简单的方法 我觉得svn等同于选择theirs conflict
  • git push origin 分支名总是推送到 master

    我搜索了一下 但似乎找不到答案 在我可以访问的两个盒子上 当我执行 git push dry run origin mytestbranch 时 我得到以下结果 To email protected cdn cgi l email prot
  • emacs 临时文件的 .gitignore 正则表达式

    我正在尝试 gitignore emacs 临时 自动保存文件 我在用着 在我的 gitignore 中 But git add A在子文件夹中运行仍然给我 new file make collections py new file nor
  • 如何列出 Git 1.7+ 中的所有远程分支?

    我试过了git branch r 但这仅列出我在本地跟踪的远程分支 如何找到我没有的列表 命令是否列出对我来说并不重要all远程分支或仅那些未跟踪的分支 For the vast majority 1 of visitors here th
  • Git 中的专有+开源设置? (例如铬/铬)

    您将如何设置一个拥有专有版本和开源版本 例如 Chrome 和 Chromium 的代码存储库 对于 Git 您会使用两个分支还是两个存储库 您如何使 私有 版本与开源版本保持同步 如果是我 我会有两个存储库 这样 您就可以对每个版本拥有不
  • 使用 Git 的 Spring Cloud 配置服务器 - 无法克隆或签出存储库连接超时

    我正在使用 GIT 在 Spring Cloud Config Server 上进行 POC Spring Boot 1 5 3 RELEASE 爪哇1 8 弹簧工具套件https github com kishornpatil https
  • Git:结帐而不运行结帐后挂钩

    我有一个我喜欢的结帐后挂钩 大多数时候 但有时我知道运行它会浪费时间 或者 因为它会删除并重建我的开发数据库 所以我不希望它去做它的事情 有没有跳过钩子的 git 选项 公平地说 我已经开始寻找一个了 我认为没有命令行选项可以完成您想要的操
  • 克隆存储库而不将其设为原始远程存储库

    我正在从一台将被擦除的计算机上克隆一个 git 存储库 是否可以在不创建原始存储库的情况下克隆存储库origin master 或者我是否需要克隆它 然后删除远程分支 这是通过git remote rm origin Edit 存储库只有一
  • GitHub API:标记提交所属(与 git describe --tag 并行)

    我正在使用 GitHub API 进行实验octokit https github com octokit octokit rb红宝石 我的目标是能够提取提交 SHA 所属的 标签 现在我可以使用命令行轻松地执行此操作 gt git des
  • Git 命令显示我对给定远程的权限

    同事可以从远程存储库获取数据 但不能推送到远程存储库 我怀疑他对遥控器只有读权限而没有写权限 我可以通过多种方法来检查这一点 但我想不出他可以在 git 中使用的方法 是否有 git 命令可以显示给定远程存储库的权限 No Git 本身不处
  • Windows 版 GitKraken 中的文件名太长

    正如建议的Q22575737 https stackoverflow com a 22575737 6623589 我已经更新了我的注册表并设置了git config system core longpaths true在处理长路径时 问题
  • 如何使用 .gitattributes 避免在 git root 中包含文件夹,但在 zip 的 dist 文件夹中包含同名文件夹

    我有一个名为lib在存储库的根目录和另一个名为lib在 dist 文件夹中 我正在尝试使用 gitattributes文件排除除 dist 之外的所有文件夹和文件 以便任何下载为 zip 或 tarball 的人都只会 git 分发文件 我
  • git 可以与 Xcode 集成吗?

    有没有办法将 git 存储库与 Xcode 内置的 SCM 功能一起使用 Xcode 4 原生支持 git WWDC 2010 上的开发者工具国情咨文演讲 在这里了解更多 Xcode 4 中的新增功能 http developer appl
  • git 预提交钩子格式代码 - Intellij/Android Studio

    本要点展示了如何在预提交时使用 Eclipse 格式化程序自动格式化 Java 代码 Source https gist github com ktoso 708972 https gist github com ktoso 708972
  • SSH 到 Openshift 服务器失败

    我正在 openshift 服务器上使用 jboss catridge 我希望与其他人共享此实例并添加其他用户的公钥 id rsa pub 当其他人尝试访问该实例时 他会收到以下错误 我在他的实例中尝试了同样的方法 但看到了同样的错误 与
  • 分支明显不同,但提交历史是相同的

    git status告诉我我的分支和我在另一个存储库上开始的分支已经分歧 On branch master Your branch and origin master have diverged and have 13 and 13 dif
  • 如何使用交互式变基将提交编辑为未提交?

    我想使用交互式变基来编辑以前的提交 但是当我进入该提交的编辑模式时 所有文件都已提交 我知道我可以进行更改并修改提交 但我希望所有更改最初都未提交 暂存或以其他方式 这样我就可以对其进行编辑 就像在最初提交之前一样 这可能吗 Imagine
  • Git:显示分支之间的差异,忽略合并的提交

    我的存储库历史记录看起来像这样 x y z branch a b c d e master 我想获得 branch 完整历史记录的单个差异 即 像 git diff 输出 我不想要像 git log p 产生的一大堆差异 而不包括任何从 m

随机推荐

  • 强制 iOS 将 Unicode 符号渲染为平面/文本

    iPhone 现在可以自动将 2D unicode 符号转换为 3D 表情符号 例如 我需要 unicode 以传统的黑白字形格式呈现 而且 我无法轻松地将 Unicode 符号替换为图像 因为这是在 UITableView 行的 edit
  • @Request Mapping 中的生产和消费是什么

    我的项目中有以下代码行 RequestMapping value UrlHandler GET AUTHENTICATION produces application json consumes application json metho
  • 如何从不同列条件下的 PySpark 数据帧中提取数组元素?

    我有以下内容PySpark 输入数据框 index valuelist 1 0 10 20 30 2 0 11 21 31 0 0 14 12 15 Where 索引 双精度型 值列表 类型Vector it s 非数组 从上面的输入数据框
  • 程序加载期间添加的菜单项的 Vcl 样式问题

    我有一个 Delphi 10 4 2 程序 32 位 其中在程序加载期间添加菜单项 Application OnActivate 事件 编码为仅运行一次 如果没有 vcl 样式 新项目将正确显示 但是当应用样式时 例如屏幕截图中非常漂亮的
  • 受约束的成员函数和显式模板实例化

    G 和 Clang 一致认为以下代码片段不是有效的 C template
  • 通过观察ViewModel在RecyclerView中搜索PagedList的LiveData

    使用 android Paging 库 可以很容易地从数据库中分块加载数据 并且 ViewModel 提供自动 UI 更新和数据保存 所有这些框架模块帮助我们在 Android 平台上创建一个出色的应用程序 典型的 Android 应用程序
  • php.ini 中的浮点数范围-0 是浮点数吗?

    当我转换字符串时 0 在 float 中 它返回 float 类型 0 example x 0 y float x 结果 gt 浮动 0 why 0是浮点数吗 IEEE 754 标准是几乎所有计算机语言实现浮点数的标准 它具有 0 and
  • Django管理命令中的动态一行输出

    我有一个 Django 管理命令 它执行大量处理 因此我让它以百分比形式输出进度 我想使用答案中描述的技术here https stackoverflow com questions 5290994 python remove and re
  • MariaDB 10 CentOS 7 移动数据目录的问题

    CentOS 7 和 MariaDB 10 的全新 最小 安装 我有一个额外安装的镜像卷 我想将其用于数据目录 当 my cnf mysqld 被注释掉时 启动顺序正常并正常完成 我已经复制了数据 sudo cp R p var lib m
  • Flutter Firestore 查询中可以使用通配符吗?

    我的目标是从路径 chat chattype room roomID message 流式传输数据库中的所有消息 在该路径中我需要查询文档中包含包含 user1 的字符串的所有消息 而无需查询明确指定房间 ID 似乎无法让它与通配符一起工作
  • 访问数据库的用户列表

    我有一个 MySQL 数据库 由我的一群队友访问 有没有命令可以获取当前正在访问或已经访问并注销的用户的日志信息 从 mysql 工具运行以下命令来查看所有当前正在运行的进程 包括睡眠连接 SHOW PROCESSLIST 或者 您可以查询
  • 使用 JComboBox Java Swing 选择颜色

    我有一个 JComboBox 我想让用户在其中选择颜色 JComboBox 仅显示颜色 没有任何文本 我已经想出了这个解决方案 请告诉我这是否好或应该避免以及为什么 我对 Swing 和 Java 总体来说是新手 所以请耐心等待 publi
  • .gitattributes 中的“* text=auto eol=lf”和“* text eol=lf”有什么区别?

    这与这个问题非常相似 gitattributes 中的 text auto 和 text eol lf 有什么区别 https stackoverflow com questions 46590142 what is the differr
  • 合并(使用挤压)来自另一个分支的所有更改作为单个提交

    在 Git 中 有没有一种方法可以将一个分支的所有更改合并到另一个分支 但同时压缩为单个提交 我经常在单独的分支中开发新功能 并定期提交 推送 主要用于备份或将我正在开发的内容转移到另一台机器上 大多数这些提交都会说 Feature xxx
  • 如何更改datagridview中的行颜色

    我想更改 datagridview 中特定行的颜色 当列单元格 7 的值小于列单元格 10 的值时 该行应更改为红色 关于如何实现此目的有什么建议吗 您需要循环遍历 datagridview 中的行 然后比较每行上第 7 列和第 10 列的
  • Angular2 可观察定时器条件

    我有一个计时器 initiateTimer if this timerSub this destroyTimer let timer TimerObservable create 0 1000 this timerSub timer sub
  • 如何解决 WPF 中的“绑定表达式路径错误”?

    我将模型对象的可观察集合绑定到数据网格 但是当我将绑定设置到集合时 我收到了指向人员的路径错误 在调试此问题时 我检查了 CustomerModel 中的公共属性在 DataGrid 绑定中是否正确命名 而且返回到模型的集合不为空 我还检查
  • 为什么使用window.onload

    我尝试自己找到这个问题的答案 但只找到了有关如何使用 onload 事件的说明 我似乎没有抓住要点 我被告知 如果我希望在页面加载时发生某些事情 我应该像这样使用 window onload 但现在我自己思考 我想知道这样做的意义是什么 因
  • 将 forMine 设置为 false 进行搜索时,youtube v3 api 错误

    我正在编写一些函数Youtube API version 3 我在用python但在谷歌提供的测试控制台中确认了我的错误 我正在提出所有授权请求 只是没有在下面粘贴我的密钥 Python 客户端库自动添加forMine参数给我的Search
  • 如何在不暂存的情况下 git 添加新文件?

    为了有效地 并按预期 使用 git 我进行了小的原子提交 而我确实有更长的会话 我所做的不仅仅是一件事 因此 我大量使用git add p 不过 这不适用于全新的文件 因为我以后往往会忘记它们 我想做的是告诉git那里is一个新文件 我希望