我经常编写文件的草稿版本,提交,然后使用我所学的知识重新开始。我经常剪切并粘贴草稿中的好部分。
问题是,如果我checkout
(文件)的草稿,它将覆盖(文件)的新版本,因为它们具有相同的名称... [这都只是一个文件]
理想情况下,请在vim
中编辑草稿版本(旧版本)和刷新版本(新版本),就像这样的语法:
vi HEAD^^/Myfile Myfile
如何在文件的两个版本之间传输信息?
stash
当前版本,checkout
较旧版本,将其从git存储库中复制 ,然后重新应用存储。现在我可以访问两个版本,但不是很像git!
使用其他名称签出,然后将其保留在目录中(例如myfile_draft.ext
)。我可以同时使用这两个版本,但容易被误判。
交互式补丁。一种笨拙且不自然的文件编辑方式!
是否有一种自然的git-like方法?
或者,我对草案的使用是否有问题,并且有一种更好的,更像git的方式来从初始版本进行构建?
答案 0 :(得分:1)
一个可能的选择
初始状态:
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)