【问题标题】:re-stash changes in git在 git 中重新存储更改
【发布时间】:2021-06-23 14:04:59
【问题描述】:

我正在使用 git 来跟踪一些 python 脚本的更改。

我创建了一个分支来对script.py 进行一些更改。但是,我还没有准备好提交更改。所以,在我从master创建的新HL(真名有点长——请看下面的截图)分支上,我修改了script.py,因为我的python脚本的生产版本仍然在master分支上,并且我隐藏了更改,一切都很好,我可以结帐给主人。如果我现在做git stash list 我会得到

stash@{0}: WIP on HL: 710c540 rm cached files not to track

我现在想回到分支 HL 并继续处理隐藏的更改。为此,在 VS 代码上(启用了gitlens 扩展)我点击了应用存储,我认为它类似于git stash apply stash@{0}

但是现在,如果我完成了我的更改(或者我根本没有更改 script.py),看来我需要创建一个新的存储,使用新 ID stash@{1},以便结帐返回(未更改的)主分支

有没有办法(最好在 vs 代码上,也可以在命令行上)将更改(如果有的话 - 在我的情况下我没有更改任何内容)“重新存储”到相同的存储 stash@{0})?像这样我会避免创建一个新的存储,与我已经拥有的当前存储相同。

【问题讨论】:

  • 这个问题的几乎每个前提似乎都是错误的。不要为此滥用 stash。进行 wip 提交。甚至可以给它一个分支名称。

标签: git visual-studio-code


【解决方案1】:

一个 Git stash 实际上代表 2 个(有时是 3 个)提交。因此,要修改现有的存储,我们必须在语义上修改那些存储提交。我什至不知道这是否容易实现,即使是这样,这也将是非常非典型的工作流程。

相反,假设您已经应用了之前的存储并且对结果感到满意,只需删除之前的存储:

git stash drop stash@{0}

然后,只需从您当前的位置创建一个新的藏匿处。话虽如此,支持git stash apply 而不是git stash pop 也是一个好习惯,因为您可能有机会再次使用该存储。保持合理大小的存储历史记录没有任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-02
    • 2022-07-12
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 2022-12-23
    相关资源
    最近更新 更多