【问题标题】:Save/restore git/cvs checkout changes when switching branches?切换分支时保存/恢复 git/cvs checkout 更改?
【发布时间】:2010-05-17 14:55:22
【问题描述】:

使用 cvs、git 或其他技术(文件系统级别?),我想:

  1. 对分支 A 进行修改

  2. 结帐分支 B:对分支 A 的更改被“隐藏”(按名称会很好),分支 B 已签出,这样我的分支 A 更改就消失了

  3. 对分支 B 进行修改

  4. 结帐分支 A:对分支 B 的更改已“隐藏”(按名称会很好),分支 A 已签出,因此我的分支 B 更改已消失,但现在我的“已保存”分支 A 从第 2 步回来了

Git-stash 似乎不符合我所描述的流程,尽管我的印象可能是错误的。

欢迎使用涉及 RCS 或文件系统或命令行工具或其他方式的技术。

【问题讨论】:

  • 这不是标准的分支/合并工作流程吗?向 A 提交更改,在 B 上签出,在 B 上提交更改,然后在 A 上签出。我错过了什么吗?

标签: git cvs branch rcs


【解决方案1】:

git stash 是您正在寻找的工具

# hack on A
git stash

git checkout B
# hack on B
git stash

git checkout A
git stash list # this is only to check which stash you want to pop
git stash pop stash@{1}

这应该可以工作

【讨论】:

  • 啊,我的印象肯定是错的!感谢您提供非常有用的小教程。
  • 您还可以使用git stash save 'Changes made before switching branches or whatever' 将名称/消息与您的内容一起存储。我发现大多数时候这很有帮助。
【解决方案2】:

除了不自动发生之外,git-stash 如何不适合您的工作流程?这听起来正是 git-stash 的用途。

http://book.git-scm.com/4_stashing.html

【讨论】:

  • 我想我错了 git-stash 似乎确实是我想要的。有点太手动了,但也许我可以围绕它编写一些脚本。
  • 我想,如果没有 git-stash,我会完全迷失。
猜你喜欢
  • 2016-03-21
  • 1970-01-01
  • 2013-12-09
  • 2012-04-05
  • 2010-10-31
  • 1970-01-01
  • 2020-06-30
  • 2010-10-14
相关资源
最近更新 更多