V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
codingadog
V2EX  ›  程序员

逃离了 sourcetree,开始使用开发工具自带的 git gui

  •  
  •   codingadog · 22 天前 · 4928 次点击

    sourcetree 用了五六年了,一直有一个偶发问题,会莫名其妙的错误删除项目( windows 版本,mac 版本不确定)。

    官网也有类似反馈: https://community.atlassian.com/forums/Sourcetree-questions/Souretree-delete-my-all-project-contents-in-local/qaq-p/604268

    升级了无数次,这个问题似乎一直没能解决。

    大概率复现方式:

    1. 启动 sourcetree ,双击进入管理的项目,多进几个
    2. 开启新标签页,进入的项目关了也行,不关也行,不影响复现
    3. 右键某个项目,删除,确认(提示框很可能只有一个项目,就算有多个,也是不准确的)

    然后就发现之前进入过的项目(一个或多个甚至全部),被无声无息的删除了

    在经历了昨天一天的工作被删除以后,花了一上午重新配置了 git 和 ssh ,直接使用 jetbrains 和 vscode 自带的版本管理工具了。(顺便夸一句,感谢 idea 的 local history 功能救我狗命)

    42 条回复    2025-06-23 15:00:07 +08:00
    bojackhorseman
        1
    bojackhorseman  
       22 天前   ❤️ 1
    感觉 git 的命令行用的还是更多的
    ererrrr
        2
    ererrrr  
       22 天前   ❤️ 1
    假如是他删除的,平时关掉 souretree 不可以么?
    只在提交的时候用?
    AmoreLee
        3
    AmoreLee  
       22 天前 via iPhone   ❤️ 2
    试试 https://magit.vc/ ,最好的 Git UI
    peasant
        4
    peasant  
       22 天前   ❤️ 5
    “逃离”隐含对威胁、压迫或危险的抗拒,换个软件而已,有必要用逃离吗?

    jetbrains 家开发工具的 git 功能我觉得就特别好用。
    chesha1
        5
    chesha1  
       22 天前   ❤️ 1
    @peasant #4 +1 ,我在 vscode 里写完功能都要打开 idea 就为了用它的 git ,感觉还没有 vscode 拓展能比得上的
    Niunai
        6
    Niunai  
       22 天前   ❤️ 1
    我在 windows 下一直用 tortoise git ,你可以尝试一下。tortoise git 的分支图特别好用。diff 工具可以集成 beyond compare 。香得一坨。
    不过 rebase 、reset 等操作,我还是在终端下操作。
    DL9412
        7
    DL9412  
       22 天前   ❤️ 4
    我用的 https://fork.dev/ ,感觉比 source tree 好用
    orzsirius
        8
    orzsirius  
       22 天前   ❤️ 2
    直接付费用 Fork ,https://git-fork.com/ ,界面跟 sourcetree 一模一样,但是不卡,体验很棒
    hukei
        9
    hukei  
       22 天前   ❤️ 1
    sourcetree 已经扔了 2 年了 用 vscode 的
    codingadog
        10
    codingadog  
    OP
       22 天前
    @ererrrr 可以,但是只要使用到了 sourcetree 本身的项目删除功能(包括只删除项目书签和从磁盘删除),都可能会触发这个问题
    codingadog
        11
    codingadog  
    OP
       22 天前
    @peasant 它把我的项目清空了,这已经足够危险了
    neoblackcap
        12
    neoblackcap  
       22 天前   ❤️ 1
    最稳定的是命令行,关键是在于你知道那些命令是干了什么。其他外部工具基本上是在合并的时候才会用
    wangtian2020
        13
    wangtian2020  
       22 天前   ❤️ 1
    没在 sourcetree 里删过库,没遇到过这个问题。没事的又不是我用 sourcetree 会意外删文件
    zx9481
        14
    zx9481  
       22 天前   ❤️ 1
    目前在用 jb 家的 git
    totoro52
        15
    totoro52  
       22 天前   ❤️ 1
    感觉用过最好的还是 jb 的 git ,清晰又好用
    anan1314git
        16
    anan1314git  
       22 天前   ❤️ 1
    SourceTree 和 fork 相比较, 性能差不少, 项目一大, 历史一多, tab 切换比较卡顿, graph 列表滚动也不流畅
    tonytonychopper
        17
    tonytonychopper  
       22 天前   ❤️ 1
    jb 的 git 是我用过最舒服最好用的
    ggvoking
        18
    ggvoking  
       22 天前   ❤️ 1
    sourcetree 卡死了,fork 才是 yyds ,用了好多年了。
    prosgtsr
        19
    prosgtsr  
       22 天前
    我一直用 idea 的 git ,爽
    同事一堆用 sourcetree 的。不知道为何,还有少数用命令行
    ooops
        20
    ooops  
       21 天前
    sourcetree 已经扔了 5 6 年了,不思进取,就 sidebar 宽度记忆都没有,留它何用
    devfeng
        21
    devfeng  
       21 天前
    我也改用 idea 内置 git gui 了,很好用,sourcetree 不知道为什么太卡了,现在也就用一下交互式变基
    beatboxgao
        22
    beatboxgao  
       21 天前
    推荐一下 lazygit ,是命令行的 TUI ,操作简单明了。
    如果项目有多个 git repo (例如 submodule )配合 tmux 使用更佳。
    tangmanger
        23
    tangmanger  
       21 天前
    没有用 git extension 的嘛
    liuliuliuliu
        24
    liuliuliuliu  
       21 天前
    sourcetree 本身就不是一款十分专业的 git 的 gui 啊。
    他当初是为了推广自家的 bitbucket 的 hg 版本控制工具,后来才加上的 git 的支持,所有有些操作为了 2 个控制工具的兼容,做的很奇怪。
    历史原因导致他的用户很多……

    所有考虑用一些专业的 git gui 工具,例如上面提到 fork ,gitkraken ,还有国产的 SourceGit ,都不错
    netabare
        25
    netabare  
       21 天前 via iPhone
    SourceTree 似乎只有 windows 版,而且是用 Java 写的,性能和稳定性都很有问题。

    JB 的 git 插件倒是对于 git 的轻度使用足够了,不过总感觉过度封装,有时候会比较要命,比如 commit 窗口上有个「 commit and push 」的按钮,我直接用插件屏蔽了,再比如 update 实际上封装了几个操作。

    感觉最稳定的还是命令行(
    twig
        26
    twig  
       21 天前
    @netabare SourceTree 有 Mac 版的。

    ---

    不过我发现 VSCode 的 git 插件也挺不错的。已经放弃 SourceTree 了。
    quqiu
        27
    quqiu  
       21 天前 via iPhone
    一直用 git graph
    diff 功能用的老版本的 gitlen
    GGMM
        28
    GGMM  
       21 天前
    对我来说,git 的任务主要就是 commit 、创建分支、rebase 、pull ,剩下的就是 git push 然后合并代码了。所以用的插件就是:git graph (可视化 git 提交历史) + gitlens (好看的 git 提交界面)
    Bzero
        29
    Bzero  
       21 天前
    腾讯家的 ugit 可以试试,缺点就是太大了。
    linxl
        30
    linxl  
       21 天前
    gitk 我就用这个...
    bowencool
        31
    bowencool  
       21 天前
    jackmod
        32
    jackmod  
       21 天前
    一般用 git 命令行,只有在合并冲突时候启动 vscode 编辑一下
    beimenjun
        33
    beimenjun  
    PRO
       21 天前
    sourcetree for mac 免费,功能完全,目前看满足我的需求。
    MasterCai
        34
    MasterCai  
       21 天前
    目前觉得 vscode 下的 gitlens 还比较好用
    Mandelo
        35
    Mandelo  
       21 天前 via Android
    一直在用 idea 自带的 git ,ai 插件自动生成 commit message ,合并界面也好用
    Ploter
        36
    Ploter  
       21 天前 via Android
    VSCode 插件:git graph + git blame
    daimaosix
        37
    daimaosix  
       21 天前
    @beimenjun 这个 PRO 会员是个啥啊大哥
    fun201108
        38
    fun201108  
       21 天前
    试试 SourceGit ,结合 git worktree 好用
    cdwyd
        39
    cdwyd  
       21 天前 via Android
    @GGMM git graph 之前也在用,现在 vscode 的 git 本身也有了图形化查看的功能,感觉也够用。
    CWorld
        40
    CWorld  
       20 天前
    可以试试 gitbutler ,git 核心团队独立出来做的项目,开源美观,易上手
    mark2025
        41
    mark2025  
       20 天前
    我觉得 windows 下是 TortoiseGit 小乌龟最好用,尤其是和 Total Commander 结合使用: 自定义 TC 的快捷键绑定小乌龟常用操作

    # usercmd.ini
    [em_TortoiseGit_commit]
    button=%PROGRAMFILES%\TortoiseGit\bin\TortoiseGitProc.exe
    cmd=""%PROGRAMFILES%\TortoiseGit\bin\TortoiseGitProc.exe""
    param=/command:commit /path:"%P%N"
    [em_TortoiseGit_log]
    button=%PROGRAMFILES%\TortoiseGit\bin\TortoiseGitProc.exe
    cmd=""%PROGRAMFILES%\TortoiseGit\bin\TortoiseGitProc.exe""
    param=/command:log /path:"%P%N"
    [em_TortoiseGit_add]
    button=%PROGRAMFILES%\TortoiseGit\bin\TortoiseGitProc.exe
    cmd=""%PROGRAMFILES%\TortoiseGit\bin\TortoiseGitProc.exe""
    param=/command:add /path:"%P%N"
    [em_TortoiseGit_rename]
    button=%PROGRAMFILES%\TortoiseGit\bin\TortoiseGitProc.exe
    cmd=""%PROGRAMFILES%\TortoiseGit\bin\TortoiseGitProc.exe""
    param=/command:rename /path:"%P%N"
    [em_TortoiseGit_revert]
    button=%PROGRAMFILES%\TortoiseGit\bin\TortoiseGitProc.exe
    cmd=""%PROGRAMFILES%\TortoiseGit\bin\TortoiseGitProc.exe""
    param=/command:revert /path:"%P%N"


    # wincmd.ini
    CS+C=em_TortoiseGit_commit
    CS+G=em_TortoiseGit_log
    CS+A=em_TortoiseGit_add
    CS+R=em_TortoiseGit_rename
    CS+V=em_TortoiseGit_revert

    如此设置,Ctrl+Shift+C 就可以提交 TC 当前光条所在的文件或者目录。 效率非常高。
    alleluya
        42
    alleluya  
       19 天前
    话说 jb 家的 git gui 没有像手机里那种单独提取 app 的 apk 似的 提一个安装包出来吗?
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2444 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:34 · PVG 18:34 · LAX 03:34 · JFK 06:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.