如何跟踪但不暂存以及如何取消暂存但不取消跟踪?

2023-12-25

我有两个简洁的问题:

  • 如何跟踪文件但不暂存它们?
  • 如何在不取消跟踪的情况下取消暂存文件以进行提交?

NOTE: 我知道我可以进行初始提交来跟踪文件,并从那里开始跟踪我的文件。但可以专门做我上面要求的事情吗?

我尝试使用git add -N <expr>但它会跟踪该文件并将其添加以进行提交:

PS C:\> git add -N fileA
PS C:\> git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:   fileA
#
# 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)
#
#       modified:   README.md
#       modified:   composer.lock
#       modified:   fileA
#

If I do git reset HEAD fileA or git rm --cached fileA取消暂存它,但也取消跟踪文件。 这个命令git rm fileA建议我使用标志 -f 来实际删除文件。

那么,是否可以仅跟踪但不暂存,并且仅取消暂存但不取消跟踪文件?


更新(2015 年 5 月)

我尝试使用git add -N <expr>但它会跟踪该文件并将其添加以进行提交:

即将推出的 Git 2.5(2015 年第二季度)不再是这种情况。
See "文件使用后没有进入提交git add -N https://stackoverflow.com/a/30341632/6309"


原始答案(2013 年 3 月)

如何在不取消跟踪的情况下取消暂存文件以进行提交?

这是官方方式:

git reset HEAD fileA

但由于它是一个新文件,您也将取消跟踪它(将其从索引中删除,没有任何先前的提交引用它)。

开始跟踪文件意味着将其放入索引(阶段)或提交中。

我建议为这些文件创建一个分支,以便在其中添加/提交它们。
See "GIT 上下文中的跟踪文件和未跟踪文件是什么? https://stackoverflow.com/a/9663590/6309"

  • 跟踪的文件是上一个快照中的文件;它们可以是未修改的、修改的或分阶段的。
  • 未跟踪的文件是其他所有文件 - 工作目录中不在上一个快照中且不在暂存区域(索引)中的任何文件

这意味着,对于新文件,取消暂存意味着取消跟踪它。

tracked files in git
(Source: Pro Git Book https://git-scm.com/book/id/v2/, 2.2 Git Basics - Recording Changes to the Repository https://git-scm.com/book/id/v2/Git-Basics-Recording-Changes-to-the-Repository)
(Thank you, louisfischer https://stackoverflow.com/users/4559927/louisfischer, for the update/fix in the comments https://stackoverflow.com/questions/15653066/how-to-track-but-not-stage-and-how-to-unstage-but-not-untrack/15653161?noredirect=1#comment80562196_15653161)

也可以看看 ”git - 如何判断文件是否被 git 跟踪(通过 shell 退出代码)? https://stackoverflow.com/questions/2405305/git-how-to-tell-if-a-file-is-git-tracked-by-shell-exit-code".

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

如何跟踪但不暂存以及如何取消暂存但不取消跟踪? 的相关文章

  • 如何克隆特定的 Git 标签

    From git clone 1 手册页 http git scm com docs git clone branch还可以在结果存储库中的该提交处获取标签并分离 HEAD 我试过 git clone branch
  • 当 .gitattributes 中的 EOL 设置为 CRLF 时,Git diff 认为行结尾为 LF

    当我恢复对带有 Windows 行结尾的文件的更改并且 gitattributes 将 EOL 定义为 CRLF 时 git 认为行结尾已更改为 LR 即使十六进制编辑器显示 CRLF 仅当 gitattributes 定义 EOL 字符时
  • 创建一个空分支?

    我有一个包含项目的 git 存储库 我现在要对这个项目进行大规模的修改 如何为这次大修创建一个空白的新分支 然后当完成时 如何将这个分支切换到master 使用 checkout orphan 命令 git checkout orphan
  • 为所有子文件夹设置 git 配置值

    我知道可以设置每个存储库的配置来覆盖用户级配置 即 path to my repo gitconfig覆盖 gitconfig 是否可以设置 git 配置来覆盖给定文件夹的所有子文件夹的用户级设置 即 我有 topLevelFolder1
  • Git 在哪里存储标签?

    Git 在哪里存储标签 我执行 git tag v0 1 0 v0 10 0 v0 11 0 但目录 git refs tags是空的 Git 将这些标签存储在哪里 谢谢 它们也可以存储在 git packed refs
  • 如何让 Aptana Studio 记住 git ssh 密码

    我找不到任何有关如何获得 Aptana Studio 的内置 git 支持来记住执行推 拉操作的 ssh 密码的指南 信息 有人有什么想法吗 Aptana Studio 实际上是内置的 GIT 程序 它将在 Windows 上的 C Use
  • git 排除与忽略

    I use Tower http www git tower com 用于在 Mac 中使用 Git Tower 中的设置具有创建 gitignore 的 忽略 部分 但它还有另一个名为 排除 的部分 似乎可以将排除与 git ls fil
  • 有没有一个简单的命令可以将分支转换为标签?

    我即将完成将 哑快照 转换为 git 的繁琐过程 这个过程进展得非常顺利 感谢这个重命名过程 https stackoverflow com questions 6628539 how to tell git that its the sa
  • MSysGit 与 Windows 版 Git

    我无法确定MSysGit 和 Windows 版 Git 之间的区别 http msysgit github com 它们有何不同 为什么我会选择其中之一而不是另一个 它们不是同一个东西吗 On http msysgit github co
  • git 推送到 github 失败并显示“错误:pack-objects 因信号 967 死亡”

    我触发了这个命令 git push origin master 我得到这个结果 Counting objects 15626 done Delta compression using up to 4 threads error pack o
  • 我应该把 .gitignore 放在哪里才能影响所有项目?

    我应该在哪里放置一个 gitignore文件以便我的所有项目都使用这些设置 我尝试了各种文件夹 只有将其放入项目文件夹中才能使其正常工作 但是设置 当然 仅应用于该项目 而不是我的其他项目 git 包含一个 全局 配置选项 可以告诉它在启动
  • 如何创建名称中带有正斜杠的标签

    当我已经有了类似的标签时 有什么方法可以创建名称中带有正斜杠的 git 标签吗 假设我有 1 16 0 标签 并且我想创建 1 16 0 1 0 0 标签 git tag 1 16 0 1 0 0 error refs tags 1 16
  • 尝试克隆一个 git 存储库,但它卡在克隆到中

    我使用的是 Windows 10版本 10 0 19042 内部版本 19042 GIT Ver 2 32当尝试使用 git bash 执行以下命令时git clone depth 1 b carla https github com Ca
  • 在我的例子中,GIT 添加恢复(保留更改)

    在我对文件进行更改之后 我用git add FILE NAME 然后 我想将其恢复为未添加但与此同时保留更改 这个怎么做 git reset FILE NAME会做的 See the git reset manual https git s
  • 使用BFG时可以指定多个文件吗?

    我正在尝试删除通配符无法覆盖的多种类型的文件 我尝试使用多个 delete files 但它不接受它 还尝试将文件全部放在 delete files 之后 但它也不接受它 有没有一种方法可以将它们全部放在一个命令中 如果没有 那么我必须运行
  • Gitolite git 克隆错误

    我正在尝试在我的服务器 Macos 服务器 上设置 gitolite 我按照此处找到的安装文档中的说明进行操作 http sitaramc github com gitolite doc 1 INSTALL html http sitara
  • Git checkout 不会丢弃我的更改

    我在 Windows XP 上使用 git 1 7 1 和 cygwin 这个问题可以通过例子得到最好的说明 git status On branch master Changed but not updated use git add
  • 为什么“git pull”在我的网络服务器上失败?

    我使用 git 来提取站点代码库的更改 文件内部的更改和文件删除是有效的 但是 当我将新文件或目录 不是空的 添加到存储库时 它不会被本地拉到网络服务器 拉动时不会显示错误消息 但在检查该文件时 它不在那里 在线的 bitbucket re
  • 如何仅根据拉取请求在 Jenkins 中运行阶段?

    我现在有一个基于 Jenkinsfile 的管道 其中包含多个阶段 每次提交到 Github 时都会由 webhook 触发 我想在每次提交时保持 构建 和 单元测试 阶段运行 但仅在分支准备拉取请求时运行 集成测试 阶段 我想要的是 st
  • 有没有一种干净的方法来处理两个以相同内容开头的原始 git 存储库?

    假设我有两个根据相同的初始内容创建的存储库 例如 如果我使用 git 来管理 etc apache2 中的 apache 配置文件 然后我运行git init分别在机器 A 和机器 B 上 此后 我对 machine b 进行了一些配置更改

随机推荐

  • 什么是 Microsoft SharePoint? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • C++ 中的哈希表?

    每当我需要存储与特定类型的值 键值 例如字符串或其他对象 关联的一些数据时 我通常使用 C stdlib 映射 stdlib 映射实现基于树 它比标准数组或 stdlib 向量提供更好的性能 O log n 我的问题是 您是否知道任何可以提
  • 提示的键盘快捷键

    通常 当我选择一个提示 例如重构我所在的某一行 时 当左侧显示紫色提示图标或灯泡图标时 我单击它 然后选择我想要的重构 我不想用我的鼠标 我如何打开左侧的对话框 resharper 会不显眼地向您显示左侧的任何对话框 只是想找到一种比使用鼠
  • 限制每个 Apache 虚拟主机的带宽 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我将启动一个 2GB Linode VPS 来托管几个 Wordpress CMS 站点和一个基于 Yii 框架的站点 我计划使用 Apache 虚拟
  • 将“onclick”处理程序添加到纯 JavaScript 中动态创建的元素

    我正在页面上动态创建和删除元素 a 和 button 我想在创建它们时向它们添加处理程序 onclick 到目前为止我见过的所有例子都是jquery 的 我怎样才能用纯 JavaScript 做到这一点 你可以这样做 for var i 0
  • 当用户关闭其中一个窗口时,WPF 关闭所有窗口

    有一个具有多个窗口的 WPF 应用程序 最初只有一个窗口 用户可以转到下一个窗口 同时隐藏上一个窗口 当他们回来时 隐藏的窗口再次出现 问题是 当用户关闭某些窗口时 隐藏的窗口继续作为进程运行 当用户关闭任何一个时 是否可以关闭所有它们 如
  • 在组件外部使用 VueI18n 的问题

    我正在尝试在组件外部使用 i18n 我找到了这个解决方案https github com dkfbasel vuex i18n issues 16 https github com dkfbasel vuex i18n issues 16告
  • 使用张量流数据集利用 GPU

    在数据训练期间 我的 GPU 利用率约为 40 并且我清楚地看到基于 TensorFlow Profiler 的数据复制操作占用了大量时间 参见附图 我认为 MEMCPYHtoD 选项正在将批次从 CPU 复制到 GPU 并阻止使用 GPU
  • 有没有办法将语法与 HTML 5 语音输入 API 结合使用?

    我正在使用 HTML 5 语音输入 API 我想让服务器知道它可以期望从语音输入返回哪些答案 有没有办法设置可能的输入列表 在 Google Chrome 中 您还不能使用语法 总的来说 他们决定仅使用自由形式识别 相关问题是Google
  • 在addListener中传递google事件数据

    我有可变数量的文本字段 我正在动态初始化 Google 地图自动完成功能 问题是每次地点已更改事件被触发 我需要确切地知道它是在哪个输入框上触发的 我怎样才能将这些数据传递给我的保存位置功能 现在 event评估结果为未定义 initAut
  • 是否有与

    HTML 中是否有一个标签只有在启用 JavaScript 时才会显示其内容 我知道
  • Svelte 框架:环境变量未出现在 svelte 应用程序中

    我正在尝试在我的 svelte 应用程序中使用环境变量 我已经安装了 Rollup plugin replace and dotenv 我创建了一个 env文件来保存我的API KEY并将以下内容添加到plugins in rollup c
  • 在惯用的 Rust 中,嵌套匹配是一种不好的做法吗?

    我有一个get url content函数并且不关心错误 这只是一个测试 它返回一个Option
  • 电子邮件验证是否需要域部分包含一个点?

    我注意到内置的浏览器验证
  • jQuery 单击不适用于新的无限滚动元素

    在我的页面上 我有一个包含项目的列表 您可以单击 查看更多 按钮 该按钮会显示有关此主题的更多信息 这个点击函数是在另一个页面的 jQuery 中的 我在此页面上实现了无限滚动器 但现在 查看更多 按钮不适用于新元素 仅适用于第一个元素 仅
  • 如何仅比较一个月和一年而不是完整的日期?

    我需要编写一个存储过程以允许某人搜索数据库 然而 我得到的只是月份和年份的整数 数据库有月份和年份字段 但我不知道如何进行比较 例如 我得到 2008 年 3 月和 2010 年 6 月 我需要在数据库中搜索日期 由月份和年份字段指定 介于
  • Django {% if forloop.first %} 问题

    我的模板中有以下代码 for object in object list with game object game for category in object game objectmeta categories all if cate
  • 扭曲的spawnProcess,将一个进程的输出发送到另一个进程的输入

    我正在尝试使用扭曲的spawnProcess来复制类似这样的行为 cat
  • MVC 下拉列表,onchange [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在 html 中有一个 2 个下拉
  • 如何跟踪但不暂存以及如何取消暂存但不取消跟踪?

    我有两个简洁的问题 如何跟踪文件但不暂存它们 如何在不取消跟踪的情况下取消暂存文件以进行提交 NOTE 我知道我可以进行初始提交来跟踪文件 并从那里开始跟踪我的文件 但可以专门做我上面要求的事情吗 我尝试使用git add N