代码之家  ›  专栏  ›  技术社区  ›  hyperpallium

从以前版本的文件传输部件?

  •  2
  • hyperpallium  · 技术社区  · 8 年前

    我经常写一个文件的草稿,提交它,然后用我学到的东西重新开始。我经常剪贴草稿中的好部分。

    问题是如果我 checkout 草稿(文件的),它将覆盖新版本(文件的),因为它们有相同的名称。。。[这只是一个文件]

    理想情况下,在中编辑草稿(旧)和刷新(新)版本 vim ,类似于以下语法:

    vi HEAD^^/Myfile Myfile
    

    如何在文件的两个版本之间传输信息?

    • stash 当前版本, 结帐 旧版本,复制它 从git存储库中取出 ,并重新应用存储。现在我可以访问这两个版本,但不是很喜欢git!

    • 使用不同的名称检查它,并将它放在目录中(如 myfile_draft.ext ). 我可以访问这两个版本,但很容易被意外的承诺。

    • 交互式补丁。一个尴尬和不自然的方式来编辑文件!

    有没有一种像git一样的自然方式?

    或者,我对草稿的使用就是问题所在,有更好的、更像git的方法从初始版本构建吗?

    1 回复  |  直到 8 年前
        1
  •  1
  •   sergej    8 年前

    一个可能的选择

    初始状态:

    A - B - C - D (HEAD, draft-version)
    

    创建新分支并将其重置为新的“起点”:

    git checkout -b new-version
    git reset A
    

    中间状态:

    A (HEAD, new-version) - B - C - D (draft-version)
    

    从 B , C 和 D 将在“新版本”分支上显示为未提交的更改。现在你可以编辑文件,保留你喜欢的,删除你不喜欢的,然后再次提交。

    git commit
    

    最终结果:

    A - B - C - D (draft-version)
     \
      E (HEAD, new-version)