7.3 储藏与清理.pdfVIP

  • 0
  • 0
  • 约5.75千字
  • 约 6页
  • 2018-04-30 发布于河北
  • 举报
7.3 储藏与清理.pdf

7.3 储藏与清理 储藏与清理 有时,当你在项⽬的⼀部分上已经⼯作⼀段时间后,所有东西都进⼊了混乱的状态, 这时你想要切换到另⼀个分⽀做⼀点别的事情。 问题是,你不想仅仅因为过会⼉回 到这⼀点 为做了⼀半的⼯作创建⼀次提交。 针对这个问题的答案是 git stash 命 令。 储藏会处理⼯作⽬录的脏的状态 - 即,修改的跟踪⽂件与暂存改动 - 然后将未完成的 修改保存到⼀个栈上, 你可以在任何时候重新应⽤这些改动。 储藏⼯作 为了演⽰,进⼊项⽬并改动⼏个⽂件,然后可能暂存其中的⼀个改动。 如果运⾏ git status,可以看到有改动的状态: $ git status Changes to be committed: (use git reset HEAD file... to unstage) modified: inde .html Changes not staged for commit: (use git add file... to update what will be committed) (use git checkout -- file... to discard changes in working d modified: lib/simplegit.rb 现在想要切换分⽀,但是还不想要提交之前的⼯作;所以储藏修改。 将新的储藏推送 到栈上,运⾏git stash 或 git stash save: $ git stash Saved working directory and inde state \ WIP on master: 049d078 added the inde file HEAD is now at 049d078 added the inde file (To restore them type git stash apply) ⼯作⽬录是⼲净的了: $ git status # On branch master nothing to commit, working directory clean 在这时,你能够轻易地切换分⽀并在其他地⽅⼯作;你的修改被存储在栈上。 要查看 储藏的东西,可以使⽤ git stash list: $ git stash list stash@{0}: WIP on master: 049d078 added the inde file stash@{1}: WIP on master: c264051 Revert added file_size stash@{2}: WIP on master: 21d80a5 added number to log 在本例中,有两个之前做的储藏,所以你接触到了三个不同的储藏⼯作。 可以通过原 来 stash 命令的帮助提⽰中的命令将你刚刚储藏的⼯作重新应⽤:git stash apply。 如果想要应⽤其中⼀个更旧的储藏,可以通过名字指定它,像这样:git stash apply stash@{2}。 如果不指定⼀个储藏,Git 认为指定的是最近的储 藏: $ git stash apply # On branch master # Changed but not updated: # (use git add file... to update what will be committed) # # modified: inde .html # modified: lib/simplegit.rb # 可以看到 Git 重新修改了当你保存储藏时撤消的⽂件。 在本例中,当尝试应⽤储藏时 有⼀个⼲净的⼯作⽬录,并且尝试将它应⽤在保存它时所在的分⽀;但是有⼀个⼲净 的⼯作⽬录与应⽤在同⼀分⽀并不是成功应⽤储藏的充分必要条件。 可以在⼀个分⽀ 上保存⼀个储藏,切换到另⼀个分⽀,然后尝试重新应⽤这些修改。 当应⽤储藏时⼯ 作⽬录中也可以有修改与未提交的⽂件 - 如果有任何东西不能⼲净地应⽤,Git 会产 ⽣合并冲突。 ⽂件的改动被重新应⽤了,但是之前暂存的⽂件却没有重新暂存。 想要那样的话,必 须使⽤ --inde 选项来运⾏ git stash apply 命令,来尝试重新应⽤暂存的修 改。 如果已经那样做了,那么你将回到原来的位置: $ git stash apply --inde # On branch master # Changes to be

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档