问题标签 [git-stash]

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 投票
32 回答
1041437 浏览

git - 在使用 Git 更改的多个文件中只存储一个文件?

如何在我的分支上仅存储多个更改文件中的一个?

0 投票
2 回答
3218 浏览

git - 是否可以从 git stash 中删除单个文件?

是否有可能,没有弹出整个存储并在没有这个特定文件的情况下保存另一个?

0 投票
1 回答
1625 浏览

git - 当它们被隐藏的日期描述时,是否可以选择一个 git stash?

我可以按日期列出 git stashes

但是我如何在不获取的情况下选择修订版

0 投票
2 回答
2014 浏览

git - git:我可以在不将其添加到索引的情况下存储未跟踪的文件吗?

一个相关问题How do you stash an untracked file?回答“跟踪文件”。但是,这不适用于我的特定需求。

我正在尝试存储不在索引中的所有内容,git stash save --keep-index以便我可以在我的预提交挂钩中验证索引。这个想法来自 git-stash 手册页的“测试部分提交”示例。我想确保我实际提交的内容通过了测试,而不仅仅是工作目录中的内容。这是我到目前为止所拥有的:

这似乎有效,直到我的工作目录中有未隐藏的未跟踪文件。一些搜索导致了两年前的功能请求:在 stash 中保存未跟踪和/或忽略的文件的选项,但没有别的。

我应该使用 stash 吗?也许有一个更好的方法涉及临时分支或其他东西。

0 投票
17 回答
134498 浏览

git - 是否可以在 git 中预览存储内容?

我经常把工作放在后面,然后其他东西出现,几周后,我想检查存储,看看如果我将它应用到当前状态的工作树会产生什么变化。

我知道我可以在 stash 上做一个 git diff,但这向我展示了工作树和 stash 之间的所有差异,而我只是想知道 stash 应用会发生什么变化。

我怎样才能做到这一点?

0 投票
1 回答
9312 浏览

git - git stash 问题

我正在运行 msysgit 1.7.3.1。如果我运行 stash apply 并且发生冲突,我所有的 stash 更改都会上演。这是正确的行为吗?我觉得有点意外。

另一个问题:如果我已经存储了 10 个文件,并且其中一个文件存在冲突,那么当它发生冲突时会存储应用中止,还是会应用所有非冲突文件。

最后,如果我执行以下操作:

并且另一个开发人员删除了我隐藏的文件,然后我无法在此文件上应用隐藏。如何从存储中检索我的更改?

谢谢!

0 投票
1 回答
4057 浏览

git - git stash apply 不会恢复所有文件

好的,所以我遇到过几次,这真的很烦人。设想:

现在,a.txt 与提交的版本相同,它应该是我隐藏的版本。因此,我现在丢失了对 a.txt 的更改。如果我返回一个提交,即。git co head~1 并应用我的存储它仍然不起作用。

修复将不胜感激。

谢谢。

好的,所以我广泛尝试了一个脚本来重现它,尝试了许多合并提交等的变体,但无法重现它。不幸的是,我很难在脚本中重现发生这种情况时我正在处理的源代码树的复杂性。我现在想到的另一个问题是,我有多个基于同一分支的不同版本的存储,一些文件被推送,一些文件在本地提交,这些文件在这些存储中。如前所述,我的命令只应用了最后一个存储,但在整个过程中,我丢失了 2 个存储,它们在执行 git stash list 时消失了。所以我也许这也会以某种方式影响结果。如果有人遇到类似情况,请更新此线程。如果有人有兴趣进一步测试我,我可以发布我的脚本(完全独立,创建存储库和一切)。与此同时,我将继续使用 git,下次发生这种情况时,我可能会更好地了解发生了什么。

这也发生在工作中,因此我无法提供原始代码,但我会再次查看 gitk 结果并发布我的发现,因为这可能会有所帮助。

感谢所有的帮助!

好的,所以查看 gitk 表明我的存储基于一个索引(我认为这是正常的),然后该索引基于一个提交,这似乎只存在于存储中(这没有意义。即。当我将它提交到我的私人分支时,保存有我给它的提交消息,但不知何故,我的私人分支没有将该提交作为 gitk 路径的一部分。

0 投票
3 回答
2849 浏览

git - git stash 和编辑过的帅哥

我非常喜欢git add -pgit stash但我偶尔会遇到以下问题,通过以下命令序列重现:

  • git add -p my_file:然后我手动(使用e)编辑一个大块,因为 git 建议的拆分不适合我
  • git stash --keep-index: 然后我做一些测试,如果测试通过了我不提交
  • git stash pop:现在问题出现了:文件my_file 现在被认为是冲突的,git已经完全弄乱了我编辑的大块,所以我必须编辑文件,删除无用的合并标记,然后git add my_file运行git reset HEAD

我很困惑,因为这只发生在手动编辑大块时。我不明白这应该有什么不同。


要重现问题:

  • touch newfile
  • git add newfile
  • git commit -m 'newfile'
  • 在文件中添加两行
  • git add -p newfile
  • 编辑大块(e),删除大块中的一行,然后退出 git add(q
  • git stash --keep-index
  • git stash pop

现在文件newfile处于未合并状态。请再次注意,该问题仅发生在手动编辑的 hunks中。如果不手动编辑任何大块,则上述命令没有任何问题。

顺便提一下,文件的先前状态处于第三阶段(git show :3:newfile),而先前阶段的版本处于第二阶段(git show :2:newfile)。所以我可以通过一些 git 黑魔法,设法将第二阶段放在这个索引中,将第三阶段放在工作回购中......但我不知道该怎么做,所以我手动做。:-(

0 投票
4 回答
4348 浏览

git - 只为 stash 命令关闭 git 中的寻呼机

我通常喜欢在 git 中使用寻呼机,但git stash寻呼机让我很恼火。调用时git stash list,我不想在寻呼机中显示三行输出——它迫使我q在键入后续git stash pop命令时再次按下以使输出再次不可用。

一种解决方案是使用

但这是太多的打字(我很懒)。按照手册页git config,我尝试了

但这似乎并没有像文档所说的那样(实际上,我没有注意到任何影响)。然后我尝试了

再次没有任何明显的影响。

配置得到正确更新,例如

它只是没有任何效果。我错过了什么?我怎样才能实现git stash不使用寻呼机?

0 投票
4 回答
1299 浏览

git - 为什么 git format-patch 不适用于存储?

如果我跑

git 静默返回,不创建任何文件。为什么会这样?如何以兼容的格式保存存储git am