【问题标题】:Stash only one file out of multiple files that have changed with Git?在使用 Git 更改的多个文件中只存储一个文件?
【发布时间】:2011-03-03 17:17:36
【问题描述】:

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

【问题讨论】:

  • stackoverflow.com/a/19700341/1668622 比公认的答案短得多,不需要任何额外的工具(例如 JesusFreke 的脚本),它只存储你想要存储的内容
  • >>>>>>>>> git diff -- *filename* > ~/patch 然后git checkout -- *filename* 稍后您可以使用git apply ~/patch 重新应用补丁
  • 以下大多数现有答案已过时。自 Git 2.13(2017 年第二季度)以来,git stash push [--] [<pathspec>...] 支持它。

标签: git git-stash


【解决方案1】:

我也想做同样的事情,但当我再次考虑时,我意识到我真的不想为了保留一个文件而费尽心思。将它复制到其他地方并添加一些 cmets 来提醒我为什么将其保留在那里会容易得多。

请不要误会我的意思:您想只存储一个文件的原因有很多,通常情况下,使用版本控制软件始终是最佳做法。但是,请确保您没有浪费时间。就我而言,我只想保留一个文件并丢弃所有其他更改,并在切换到新分支后将其弹出。所以cp/mv 工作得很好。

【讨论】:

    【解决方案2】:

    您还可以选择仅存储单个文件、文件集合或文件中的单个更改。如果您将 -p 选项(或 --patch)传递给 git stash,它将遍历工作副本中每个更改的“hunk”并询问您是否希望将其隐藏:

    $ git stash -p
    

    按下下面的键之一,它将运行该命令

    Command   Description 
    y         stash this hunk  
    /         search for a hunk by regex .  
    ?         help .   
    n         don't stash this hunk .    
    q         quit (any hunks that have already been selected will be stashed) .   
    s         split this hunk into smaller hunks    
    

    【讨论】:

    猜你喜欢
    • 2021-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多