问题标签 [git-index]
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 stash 删除添加的更改
在开发过程中,我经常将文件的工作版本(但不提交)添加到我的 git 存储库中。我继续处理这些文件,直到它们达到可提交阶段,那时我可以提交它们。所以回购看起来像下面
当我做 a git stash
,然后做 a git stash pop
,我得到
问题
- 为什么 git 不像以前那样存储它们?
- 如何一次性存储我的更改,以便在执行存储弹出时,我得到旧状态,而不是新状态?
目前,我手动做
这个问题是
- 存储和弹出需要 5 个步骤,我正在寻找 2 个
- 我有时可能不记得有 2 个背靠背的藏匿处,这会使任务稍微复杂化。
编辑 - 我更喜欢命令行解决方案,因为我在测试服务器上以类似的方式工作。
git - git index 的内容在合并期间如何演变(以及合并失败后索引中的内容)?
我对git
索引包含的内容有一个模糊的概念,因为一个人执行git-add
s 和git-commit
s,但我不知道当一个人执行 s 时这些内容会发生什么git-merge
。我对了解合并失败时索引的内容特别感兴趣(例如,由于某些冲突)。
git - 如何撤消目录上的“git update-index --assume-unchanged”。“--no-assume-unchanged”不起作用
我用过
并期望
将撤消该命令。但是,它说“忽略路径[目录名称]”并且直接继续被忽略。
我也试过
但这也不起作用。
我试过做
对于目录中的每个文件,但该目录仍然被忽略。
我正在使用 git 版本 1.8.4.mysysgit.0
还有另一种方法可以让 git 停止忽略目录吗?
git - Git 刷新索引错误 (Aptana Studio 3)
在过去的几天里,我一直遇到以下问题。我对 git 很陌生,所以我不确定是什么导致了这个问题。
我不知道从这里去哪里。
任何帮助,将不胜感激。
git - 忽略对跟踪文件的更改,而不会使文件无法“git add”
您可能想跳过序言。
我有一个具有以下结构的 npm 包:
源文件是一个 CoffeeScript 文件。我有一个用于从源文件构建 JavaScript 文件的 make 目标。直到最近,我在每次提交中都包含了对 JavaScript 文件的更改,但我现在将xyz与预发布脚本一起使用:
预发布脚本很简单:
这意味着每次我发布一个新版本时(make release-patch
例如通过运行),lib/index.js将被重建并添加到发布提交中。到目前为止一切正常。
由于发布脚本会自动更新编译后的文件,我不再希望每次提交时都手动更新它。问题是运行后make test
,git status
将lib/index.js列为修改后的跟踪文件。我想避免意外提交这个文件,所以我想防止它被git status
.
我尝试的第一件事是添加/lib/
到.gitignore。但是,这不起作用,因为lib/index.js已经被跟踪。
然后我发现git update-index --assume-unchanged
。我使用作为参数运行此命令lib/index.js
,并且该文件不再由git status
. 到目前为止,一切都很好。但现在,它git add lib/index.js
不再起作用,因此预发布脚本将无法完成其工作。
我相信 prepublish 脚本可以在git update-index --no-assume-unchanged lib/index.js
之前运行git add
,然后可以使用git update-index --assume-unchanged lib/index.js
. 这真的是最好的方法吗?
总而言之,如何在保留文件功能的同时忽略对跟踪文件的更改git add
?
git - Git:从索引中重置已删除的文件
- 创建 2 个文件:
one.txt
和two.txt
. - 提交两个文件:
git add -A
和git commit -m "message"
- 编辑
one.txt
并将其添加到索引:git add one.txt
- 删除
two.txt
并将其添加到索引:git rm two.txt
我只想提交one.txt
,因此我需要two.txt
从索引重置。
怎么做?
git commit one.txt
有效,但它不适用,因为可能是 100 个文件one.txt
。
git - git difftool 生成的“lindex”、“rindex”和“wtindex”文件是什么?
当我运行时:
它创建一个临时目录,其中包含要在 diff 中显示的文件。结构如下所示:
“左”和“右”目录清晰。但是“lindex”和“rindex”文件是什么?它们包含什么?我如何查看它们?有时没有“rindex”而是“wtindex”文件。
egit - 什么是 GIT 分期以及添加到索引和添加到 GIT 索引之间的区别?
我正在使用 GibHub 私有存储库。我对此没有足够的了解。
什么是 Git 暂存?Git Staging 的目的是什么?
何时使用 Git 暂存?
我发现在 Git Staging 中添加文件的两个不同选项。
- 项目资源管理器 --> 团队 --> 添加到索引
- 团队同步 --> 添加到 Git 索引
他们都将文件发送到 Git Staging。那么这两者有什么区别呢?哪个对用户更好?他们都将文件发送到 Git Staging。
谢谢。
git - 为什么git索引文件是二进制的?
我的 Git 目录中的大多数文件都是纯文本文件(压缩的松散对象和包文件除外)。所以我可以 cat 和编辑文件,.git/HEAD
或者.git/refs/heads/master
检查存储库是否损坏。
但这.git/index
是一个二进制文件。纯文本文件不是更有用,因为它可以很容易地手动修改吗?
Scott Chacon 在他的演示文稿中展示了以下图片(幻灯片 278):
在我看来,这可以很容易地放入纯文本文件中。
那么为什么它是二进制文件而不是纯文本文件呢?
git - 为什么结帐有时会暂存文件?
当我第一次开始使用 Git 时,我发现这个checkout
命令相当混乱。然而,当我适应了 Git 的版本控制模型时,它开始变得有意义了。现在我不得不向我的同事教 Git,我试图checkout
简单地解释一下。我以为我有一个简单的解释(来自文档):
签出工作树的分支或路径
这似乎统一了一些你可以用 checkout 做的事情,对于 Git 新手来说,这似乎是一组多样化的操作:
...除了最后一个,因为这不仅会更新工作目录,还会暂存文件。
我如何理解为什么或何时结帐会导致某些内容暂存而不是仅复制到工作目录中?