StackTc 2018-07-08 12:27 采纳率: 90.9%
浏览 2725
已采纳

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

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

  • 写回答

1条回答 默认 最新

  • duxin_ 2018-07-08 14:57
    关注

    你首先要问自己一个问题,当你在某个分支修改代码的时候,你为什么要切换到其他分支(比如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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!