StackTc
StackTc
采纳率61.9%
2018-07-08 12:27

关于git中的stash跟commit的有一些疑问

5
已采纳

当我在 dev分支改了代码以后。但是还没提交 想切换到master上的时候。先commit 然后 checkout 跟 state 然后checkout 有什么区别吗。
免费说一下应用场景,因为commit其实是提交到本地仓库并不是提交到中央仓库。
在所在我看来跟stash使用到结果也差不多。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • duxin_ duxin_ 3年前

    你首先要问自己一个问题,当你在某个分支修改代码的时候,你为什么要切换到其他分支(比如master)?commit有commit的含义,checkout有checkout的含义,stash有stash的含义,虽然你说的两种操作效果是一样的,但是他们的目的完全不同。就你的问题而言,如果你换到其他分支是想在那个分支工作,有两种情况:1.你当前的工作已经完成了,那你完全可以commit到你当前的分支,不管你要不要push到remote去。这种情况下,你说的两种操作效果是一样的。2.你的工作没有完成,那你就只能用stash了。你首先不应该commit,每一个commit从理论上来说都是完成某件事情的,是可以work的代码,而不是一个半成品。你可以说,我先commit,一会再checkout不就行了。可以是可以,但是如果你在另一个分支操作很久,回来的时候你忘了呢?你可能会继续修改,然后再创建一个新的commit。

    请参看git关于stash的说明:https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E5%82%A8%E8%97%8F%EF%BC%88Stashing%EF%BC%89

    点赞 评论 复制链接分享

相关推荐