- [git新手在这里]*
假设我正在处理一个新文件,我正在编写下面的故事:
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
1条答案
按热度按时间dgsult0t1#
$git stash显示stash@{0}//新行没有错误
Git在这里什么也没显示,因为你的文件未被跟踪。
git stash show
不会显示未被跟踪的文件,除非你用-u
请求。你已经有一个修改过的test/story.txt文件,因为你隐藏的修改 * 会创建一个新文件 *,所以git会保护你不被它覆盖。
请参阅Stashing and Cleaning了解更多关于隐藏的信息。
总的来说,我发现隐藏很容易变得混乱,忘记里面有什么或它适用于什么。暂时隐藏更改是有用的。如果要隐藏更长时间,我建议使用提交和分支。
如果你需要保存一些未完成的工作,提交并记录为"wip"(进行中的工作),然后amend the commit later (see Changing the Last Commit.如果你想有两个不同的版本,创建一个分支;这是他们擅长的。树枝很便宜。