git stash - 在 未 提交 的 版本 之间 切换

5cnsuln7  于 2022-11-20  发布在  Git
关注(0)|答案(1)|浏览(203)

**[git newbie]**假设我正在处理一个新文件,我写了一个故事:

Version1: A guy walks into a bar
          [here I tell my story]

在这一点上,我喜欢我写的东西,但我希望做一些修改,所以我把我的修改:

$git stash save -u 'version1: a guy walks'

留言:

Saved working directory and index state On dev_story: version1: a guy walks

现在我改变它:

Version2: A nice dude walks into a bar
          [here I tell a slighly different story]

然后再藏起来

$git stash save -u 'version2: a dude walks'

留言:

Saved working directory and index state On dev_story: version2: a dude  walks

查看我的藏匿清单我看到:

$ git stash list
stash@{0}: On dev_story: version2: a dude walks
stash@{1}: On dev_story: version1: a guy walks

我想把我的作品展示给一个朋友,并讨论版本1和版本2。
当我尝试应用stash@{0}时,它没有显示“一个人走...”我尝试过的内容:

$ git stash show stash@{0}  //new line no error

$ git stash apply stash@{0} 

test/story.txt already exists, no checkout
error: could not restore untracked files from stash
bkhjykvo

bkhjykvo1#

$ git stash show stash@{0} //新行没有错误
Git在这里什么也没有显示,因为你的文件没有被跟踪。git stash show不会显示你没有被跟踪的文件,除非你用-u请求。
第一个
你已经有一个修改过的test/story.txt文件了,因为你隐藏的修改 * 会创建一个新文件 *,git会保护你不被它覆盖。
请参阅Stashing and Cleaning了解有关隐藏的更多信息。
总的来说,我发现隐藏很容易变得混乱,忘记里面有什么或者它适用于什么。暂时隐藏更改是有用的。如果要隐藏更长的更改,我建议使用提交和分支。
如果你需要保存一些未完成的工作,提交并记录为“wip”(工作进行中)。然后amend the commit later (see Changing the Last Commit。如果你想有两个不同的版本,创建一个分支;这是他们的专长,树枝很便宜

相关问题