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

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

报告相同问题?

悬赏问题

  • ¥100 只改动本课件的 cal_portfolio_weight_series(decision_date), 跑完本课件。设计一个信息比率尽量高的策略。
  • ¥20 如何在visual studio 2022中添加ImageMagick库
  • ¥50 如何实现uniapp编译的微信小程序做可回溯视频
  • ¥15 求Houdini使用行家,付费。价格面议。
  • ¥15 前端高拍仪调用问题报错
  • ¥15 想用octave解决这个数学问题
  • ¥15 Centos新建的临时ip无法上网,如何解决?
  • ¥15 海康威视如何实现客户端软件对设备语音请求的处理。
  • ¥15 支付宝h5参数如何实现跳转
  • ¥15 MATLAB代码补全插值