问题标签 [git-stage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
18544 浏览

git - 仅使用 git add 暂存已删除文件

我已经运行git status并看到了几个修改过的文件和几个删除的文件。

是否可以仅暂存已删除或仅修改的文件?

0 投票
1 回答
74 浏览

git - Git 和添加 -p 问题

我刚刚应用了patch3 个文件,它们diff可以在这里看到:

stack.h stack.cmain.c

任务是将spatch分成不同commit的 s,如注释、许可证、重构等。

为此,我将使用git add -p

  1. 第一个大块头是许可证main.c,微不足道,我按y

  2. 第二块stack.c包含一大块许可证,然后是两块评论。我s分裂然后y n n

  3. 我将在剩下的时间里继续这样做git add -p

但是,它看起来像没有n应用!

为了证实我的怀疑,我会git add -p再次做一个新鲜的,这次我将使用e将成为this

git然后输出fatal: corrupt patch at line 50. 所以基本上我sn试图不上演某些大块头,但最终放弃了这些移除。

+-与(您必须用空格替换该行)不同,应该毫无问题地删除行,对吗?我究竟做错了什么?

0 投票
1 回答
4388 浏览

git - Git跟踪未跟踪的文件而不添加提交

我运行了命令“git reset”,但我未暂存的更改被放入文件夹中。运行 git status 后,我得到如下信息:

每个文件夹都包含多个我修改过的文件,但由于某种原因被分组到这些文件夹中。

我需要将这些更改分成多个拉取请求,因此“git commit -a”不会这样做。

我看到的最好的解决方案是“git add -all”,复制“git status”,然后再次“git reset”,但这似乎需要付出很多努力。

有更好的解决方案吗?

0 投票
1 回答
1461 浏览

git - git reset 导致工作目录和阶段的更改

我有一个包含许多文件的提交。

提交中的文件之一有几个更改,我想撤消其中一个。

所以,我想我可以重置那个特定的文件,HEAD~让我在工作目录中所做的未完成的更改。然后,我可以使用git add -p并且只暂存所需的更改,然后是git commit --amend.

首先,我确保我的工作目录或阶段没有明显的变化。

然后,我运行了这个命令:

但是,令我惊讶的是,git status现在显示了我的工作目录和阶段的更改。进一步检查使用gitk表明我的工作目录和阶段中的更改是相同的。

我在哪里错了?

0 投票
1 回答
581 浏览

git - 为什么在 Git 中使用暂存区?

我是 Git 新手,想知道在哪里使用暂存区域而不是直接提交更改的文件。

0 投票
2 回答
3189 浏览

git - 编辑要提交的更改

我有一些更改要提交到一个文件中,已经添加(但未提交)。该文件在当前目录中有其他更改,这些更改不会被提交。但是在我实际提交之前,我需要编辑一些即将提交的更改。清除?我是这么想的!

因此,在实际提交之前,我想更改分阶段的更改。git commit -i 让我手动编辑补丁。我可以以某种方式直接在分阶段更改上使用此功能吗?

解决此问题的另一种方法是存储非暂存更改,编辑工作目录中的文件并添加这些更改。但我的印象是,当我取消隐藏时,我会遇到冲突。

0 投票
1 回答
280 浏览

python - 如何使用 gitpython 暂存文件大块

gitpython(或任何python git API)是否提供了一种方法来从工作树中的文件中分阶段选择大块,就像git add -i让你做的那样?

我想我可以看到如何通过使用 's 和属性来获得可迭代的大块更改difflibgit.diff.Diff但是a_blobb_blob如何构建一个特定的大块?

而且,对于奖励积分,是否有更好的方法来迭代文件中的更改,而不是:

我正在考虑比较流的东西,而不是必须将全部加载到内存中然后将其拆分为行。

0 投票
3 回答
82 浏览

git - git:如何在当前已经上演某些内容的情况下上演/提交另一个变更集

这在我身上经常发生:

经过一天的编码后,我开始为某个功能进行相关更改。我主要通过“git add -p”来选择性地只添加相关的更改(保持调试的东西等等)。

但后来我意识到我也做了一些同样值得承诺的事情。它与功能无关,但会影响相同的代码。因此我想在此之前提交。不幸的是,我已经花了很多时间来展示这个功能。你如何处理这种情况?

我目前的解决方案是这样的:

(想象部分功能“B”已经上演,现在你意识到有功能“A”)

0 投票
3 回答
4094 浏览

git - 删除暂存文件并重置为原始版本

如果我在暂存区域中有一个文件(显示在 中git diff --cached)并且我想完全删除它,我该怎么做?
正在做

是这样,但是这 2 个动作有 1 个命令吗?

0 投票
0 回答
555 浏览

git - 在没有冲突的 Git 合并之后,我没有接触的很多文件都变成了未暂存的更改和暂存的提交

这个问题与这个关于合并的问题非常相似,但有一个关键区别:没有合并冲突。

所以我在一个功能分支中工作,提交一些更改,然后运行git merge master​​. 我的目标是在创建 PR 以将分支合并回 master 之前用最新的 master 更新我的特性分支(这是我们选择的工作流程,想法是首先解决特性分支上的问题)。我得到零合并冲突,合并似乎完成。当我运行git log时,我的功能分支现在似乎有来自 master 的最新提交。但是,当我跑步时git status一堆我没有接触过的文件(但它们似乎已在 master 中更新)突然进入我的“已提交更改”列表,其中一小部分显示为“未为提交暂存的更改”和“未跟踪的文件” . 这不是一对一的,在我的最新示例中,我暂存了 45 个文件,但只有 33 个未暂存+修改或未跟踪。我没有提交这些文件,因为看起来功能分支已经有来自 master 的最新提交。

git stash到目前为止,我必须通过运行(并定期清除我的存储)来处理这个问题。有时我get reset HEAD也会跑去清理它。这似乎没问题,因为我有来自 master 的最新提交。但是,我不确定这些是可取的行动还是正确的做法。通过忽略这些暂存文件,我是否错过了 git 合并工作流程的关键部分?这里发生了什么?这种行为的名称是什么?在我读过的任何指南中都找不到对此的参考。

最后一点可能会有所帮助。我在 Mac 上,但这是一个 .net + React 项目,所以很多开发人员都在 Windows 上。这可能是平台之间的 autocrlf 或其他行尾变化的问题吗?