问题标签 [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.
git - 仅使用 git add 暂存已删除文件
我已经运行git status
并看到了几个修改过的文件和几个删除的文件。
是否可以仅暂存已删除或仅修改的文件?
git - Git 和添加 -p 问题
我刚刚应用了patch
3 个文件,它们diff
可以在这里看到:
任务是将spatch
分成不同commit
的 s,如注释、许可证、重构等。
为此,我将使用git add -p
:
第一个大块头是许可证
main.c
,微不足道,我按y
。第二块
stack.c
包含一大块许可证,然后是两块评论。我s
分裂然后y
n
n
我将在剩下的时间里继续这样做
git add -p
。
但是,它看起来像没有n
应用!
为了证实我的怀疑,我会git add -p
再次做一个新鲜的,这次我将使用e
,这将成为this。
git
然后输出fatal: corrupt patch at line 50
. 所以基本上我s
并n
试图不上演某些大块头,但最终放弃了这些移除。
+
-
与(您必须用空格替换该行)不同,应该毫无问题地删除行,对吗?我究竟做错了什么?
git - Git跟踪未跟踪的文件而不添加提交
我运行了命令“git reset”,但我未暂存的更改被放入文件夹中。运行 git status 后,我得到如下信息:
每个文件夹都包含多个我修改过的文件,但由于某种原因被分组到这些文件夹中。
我需要将这些更改分成多个拉取请求,因此“git commit -a”不会这样做。
我看到的最好的解决方案是“git add -all”,复制“git status”,然后再次“git reset”,但这似乎需要付出很多努力。
有更好的解决方案吗?
git - git reset 导致工作目录和阶段的更改
我有一个包含许多文件的提交。
提交中的文件之一有几个更改,我想撤消其中一个。
所以,我想我可以重置那个特定的文件,HEAD~
让我在工作目录中所做的未完成的更改。然后,我可以使用git add -p
并且只暂存所需的更改,然后是git commit --amend
.
首先,我确保我的工作目录或阶段没有明显的变化。
然后,我运行了这个命令:
但是,令我惊讶的是,git status
现在显示了我的工作目录和阶段的更改。进一步检查使用gitk
表明我的工作目录和阶段中的更改是相同的。
我在哪里错了?
git - 为什么在 Git 中使用暂存区?
我是 Git 新手,想知道在哪里使用暂存区域而不是直接提交更改的文件。
git - 编辑要提交的更改
我有一些更改要提交到一个文件中,已经添加(但未提交)。该文件在当前目录中有其他更改,这些更改不会被提交。但是在我实际提交之前,我需要编辑一些即将提交的更改。清除?我是这么想的!
因此,在实际提交之前,我想更改分阶段的更改。git commit -i
让我手动编辑补丁。我可以以某种方式直接在分阶段更改上使用此功能吗?
解决此问题的另一种方法是存储非暂存更改,编辑工作目录中的文件并添加这些更改。但我的印象是,当我取消隐藏时,我会遇到冲突。
python - 如何使用 gitpython 暂存文件大块
gitpython(或任何python git API)是否提供了一种方法来从工作树中的文件中分阶段选择大块,就像git add -i
让你做的那样?
我想我可以看到如何通过使用 's 和属性来获得可迭代的大块更改difflib
,git.diff.Diff
但是a_blob
我b_blob
如何构建一个特定的大块?
而且,对于奖励积分,是否有更好的方法来迭代文件中的更改,而不是:
我正在考虑比较流的东西,而不是必须将全部加载到内存中然后将其拆分为行。
git - git:如何在当前已经上演某些内容的情况下上演/提交另一个变更集
这在我身上经常发生:
经过一天的编码后,我开始为某个功能进行相关更改。我主要通过“git add -p”来选择性地只添加相关的更改(保持调试的东西等等)。
但后来我意识到我也做了一些同样值得承诺的事情。它与功能无关,但会影响相同的代码。因此我想在此之前提交。不幸的是,我已经花了很多时间来展示这个功能。你如何处理这种情况?
我目前的解决方案是这样的:
(想象部分功能“B”已经上演,现在你意识到有功能“A”)
git - 删除暂存文件并重置为原始版本
如果我在暂存区域中有一个文件(显示在 中git diff --cached
)并且我想完全删除它,我该怎么做?
正在做
是这样,但是这 2 个动作有 1 个命令吗?
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 或其他行尾变化的问题吗?