V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
yujianwjj
V2EX  ›  git

git 临时切换分支

  •  
  •   yujianwjj · 2023-11-15 10:36:33 +08:00 · 15719 次点击
    这是一个创建于 401 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家在开发过程中,遇到需要切换分支的情况,比如需要紧急修复一个线上 bug 。这个时候,是使用 git commit 临时保存本地代码还是使用 git stash 。

    122 条回复    2023-11-17 06:17:16 +08:00
    1  2  
    zbowen66
        101
    zbowen66  
       2023-11-15 20:37:40 +08:00   ❤️ 1
    @flyqie #2 年轻啊,commit 可以随意丢弃重置啊,有 reflog 可以找回来,stash 丢了就真没了。误操作是一方面,我经历过硬盘损坏开不开机的情况,所以我临时 commit 也推送远程,然后 reset/rebase 回来
    11232as
        102
    11232as  
       2023-11-15 20:39:49 +08:00
    git stash ,怕丢就 git diff HEAD .输出成 Patch 保存到本地,需要用的时候再把 Patch 打上来得了。
    littlewing
        103
    littlewing  
       2023-11-15 20:41:52 +08:00   ❤️ 1
    当然是 commit

    后面再 reset 、rebase 、amend 都行啊
    littlewing
        104
    littlewing  
       2023-11-15 20:43:11 +08:00
    我们都是先把代码拷贝一份然后再改呢
    Torpedo
        105
    Torpedo  
       2023-11-15 20:52:44 +08:00
    我都是同一个项目多个副本。之前忙的时候,一个项目最多有三、四个
    JasonGrass
        106
    JasonGrass  
       2023-11-15 21:30:06 +08:00
    worktree 啊,简直就是专门用来处理这种问题的。

    [git worktree 使用笔记 - J.晒太阳的猫 - 博客园]( https://www.cnblogs.com/jasongrass/p/11178079.html )
    Jony4Fun
        107
    Jony4Fun  
       2023-11-15 21:33:32 +08:00
    @liuidetmks stash save 写上 message 不就好了?
    petercui
        108
    petercui  
       2023-11-15 22:15:36 +08:00
    git worktree
    ClericPy
        109
    ClericPy  
       2023-11-15 23:46:07 +08:00
    换电脑就 WIP 提交, 反正一个问题改完了也要修分支各种合并无效提交

    不换电脑 stash 够了, 不然单体仓库切换分支时候也够麻烦的

    很久以前看 Github flow 还是什么 flow 时候有过讲解, 太久了忘了..
    kilakilia007
        110
    kilakilia007  
       2023-11-16 08:47:14 +08:00 via Android
    本地重新拉一个版本库,天知道 bug 要修到什么时候
    Pig930
        111
    Pig930  
       2023-11-16 09:12:13 +08:00
    看了一圈大家的回复我还是觉得 git worktree 更好一点哈哈哈,如果 commit 带有一些 hooks 的话那就会避免一些解决问题的成本
    litchinn
        112
    litchinn  
       2023-11-16 09:30:02 +08:00
    我使用 githubdesktop ,当我有代码没提交并切换分支时,它会提示,是 stash 还是将修改带到目标分支去,so ,我都是 stash
    Mjhhh
        113
    Mjhhh  
       2023-11-16 09:41:09 +08:00   ❤️ 1
    我是在看到这个帖子之后,才想起我有一个两天之前的 stash ,我决定以后不用 stash ,真会忘记的。。
    sprite82
        114
    sprite82  
       2023-11-16 09:52:22 +08:00
    @pkoukk #91 github/gitlab work flow 不是圣经,不是每个公司都是完全照搬的,都是人在操作,规范并不能限制他想干什么,他要是 rebase 了,他自己愿意多操作几个步骤关我什么事,而且这也不叫污染,污染是他最终直接 merge push 了,一个需求项 N 多提交记录。另外我加的基本和大多数你是直接对号入座了是吧,还有什么磁盘天天炸?
    SaigyoujiNono
        115
    SaigyoujiNono  
       2023-11-16 09:57:17 +08:00
    我一般同时 clone 几个项目下来
    sprite82
        116
    sprite82  
       2023-11-16 09:58:27 +08:00
    @20015jjw #57 不是不能,amend rebase reset 都是要多操作一些步骤的,人都是惰性的,没人管他他就随便搞了,我见过太多这样的人了
    XGF
        117
    XGF  
       2023-11-16 13:31:51 +08:00
    git worktree 或者手动拉一个版本库,ignore 的文件怎么办,也复制过来?
    20015jjw
        118
    20015jjw  
       2023-11-16 14:14:55 +08:00 via iPhone
    @sprite82
    骂就行了 per commit code review 安排
    流程问题别怪工具
    sprite82
        119
    sprite82  
       2023-11-16 15:23:53 +08:00
    @20015jjw #118 我什么时候怪过工具了?又一个凭空猜测的
    sankooc
        120
    sankooc  
       2023-11-16 16:24:20 +08:00
    commit stash 都可以 看个人习惯
    20015jjw
        121
    20015jjw  
       2023-11-16 18:43:33 +08:00 via iPhone
    @sprite82 没说你鸭说原来的那个人
    ZE3kr
        122
    ZE3kr  
       2023-11-17 06:17:16 +08:00
    不 push 上去的话电脑一丢,在没有其他备份的情况下,之前写了一半的分支不就丢了;就算有其他备份,commit+push 上去也更保险。我宁可多点垃圾 commit 也不愿意丢掉代码
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2716 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:28 · PVG 19:28 · LAX 03:28 · JFK 06:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.