Repository navigation
Releases: Binaryify/MyGit
Releases · Binaryify/MyGit
Release list
MyGit 0.3.11
- 历史改为只看当前分支,去掉了「全部分支 ▾」范围菜单:以前标题栏的「⎇ 分支 ▾」和历史上方的「全部分支 ▾」看着都像分支切换,容易混。现在切换分支,历史就跟着显示该分支的提交;想看别的分支或标签又不切换,在分支弹窗里点它的菜单「查看历史」,历史上方会出现「正在看 xxx 的提交,没有切换分支」和「回到当前分支」按钮
- 标题栏的分支按钮加了提示:当前所在的分支,点击切换、新建或管理分支
MyGit 0.3.10
- 提交说明框里按 ↑ 可以带回最近的提交说明(#6),像终端翻历史命令一样:再按 ↑ 往更早翻,↓ 往回翻,翻回最新之后就是空的;光标停在说明末尾,可以接着改。只在提交说明框为空、或者还是刚带回来的说明时这样翻,打了字或改过之后 ↑ ↓ 照常移动光标。单个仓库和工作区里每个仓库的提交框都一样
MyGit 0.3.9
- 新增工作树(git worktree)管理,做法参照 IntelliJ:分支弹窗里多了「工作树」分区(有两个以上工作树时显示),每行是工作树的文件夹名和检出的分支,当前的打勾;点开有菜单:在新窗口中打开、复制路径、删除工作树
- 本地分支、远程分支和标签的菜单里新增「在新工作树中检出…」:填位置(默认放在仓库旁边,如
mygit-feature),本地分支没在别处检出时直接检出;已经检出的本地分支要起一个新分支名;远程分支默认建同名的本地分支;标签留空则检出为分离 HEAD。建好后在新窗口打开 - 删除有未提交改动、未跟踪文件或 submodule 的工作树时,会先问一下再强制删除
- 支持 submodule:在 submodule 里打开时,工作树分区标出「submodule」,新建对话框提示新工作树不会替换父仓库里的这个 submodule,默认位置放在父仓库旁边、不放进父仓库里;git 给 submodule 主工作树报的是
.git/modules/…里的路径,这里换成它真正的工作区目录 - 修复:「最近打开」的顺序不对。以前 SSH / WSL 的仓库总排在本地仓库前面,窗口已经开着时再打开也不会挪到最前;现在本地和远程合成一个列表,按最后打开的时间排,欢迎窗口和「最近打开」菜单都一样
MyGit 0.3.8
- 新增标签列表(#5):分支弹窗里在本地分支、远程分支后面多了「标签」分区,最新的标签在前,顶部搜索框同时搜分支和标签
- 点开一个标签有自己的菜单:检出此标签、与当前分支比较 / 合并 / 变基、从此标签新建分支、查看此标签的历史、复制标签名、推送标签到 origin、删除标签
- 历史的范围菜单(「全部分支 ▾」)里新增「标签」子菜单,可以只看某个标签的历史
MyGit 0.3.7
- WSL 的发行版处处显示为「WSL · Ubuntu-24.04」,不再是内部写法
wsl+Ubuntu-24.04:选择文件夹的对话框标题、窗口标题、欢迎窗口「最近打开」里的位置
MyGit 0.3.6
三路解决冲突改成和 IntelliJ 一样的体验。
- 不再读 git 写进文件的冲突标记,而是自己从共同祖先(base)、我们的、他们的三份内容算三路合并:结果栏一打开就是 base,只有一边改的地方已经合进去,冲突处显示 base 的原文,没有
<<<<<<</=======/>>>>>>> - 三栏按改动对齐、一起滚动:滚任意一栏,另外两栏跟着滚到对应的行;打开时直接停在第一个冲突
- 改动按 IntelliJ 的配色标出来:冲突红色,修改蓝色,新增绿色,删除灰色(删除的地方画一条线);左右两栏和结果栏之间用色带连起来,已解决的改动变淡
- 每处改动旁边有按钮:» / « 把这边的改动放进结果(另一边已经放进去时接在后面,也就是「两者都要」),✕ 忽略这边的改动;顶部的「采用左侧」「采用右侧」「两者都要」作用于当前冲突
- 新增魔法棒按钮「自动解决简单冲突」(IntelliJ 的魔法棒):两边改的是同一行里不同的单词时(比如一边改了
call(a, b)的a,另一边改了b),把两边的改动都合进结果 - 结果栏可以直接编辑,改动会跟着走;撤销(⌘Z)刚才采用的改动,冲突会重新变回未解决
- F7 / ⇧F7 在未解决的冲突之间跳转;跳过去时三栏把这处改动的第一行对齐在同一高度
- 「整个文件」菜单(全部采用左侧/右侧)收进了工具栏右边的 ⋯,窗口窄时工具栏也放得下
- 文件里的冲突已经在别处手动改过(冲突标记都去掉了,比如在编辑器里改了一半,或者 rerere 已经解决)时,结果栏沿用文件现在的内容,不会被覆盖;不想要的话,⋯ 里有「重新合并(放弃结果里的改动)」
- 保存后自动打开下一个有冲突的文件,和 IntelliJ 一样一个接一个处理
- 一边删除、一边修改的文件不再显示成整个文件冲突,而是说明谁删了、谁改了,可以「保留文件」或「删除文件」,下面显示保留下来的内容;二进制文件冲突直接选一边整个采用
- ⋯ 里可以「忽略空白」:只改了缩进或空格的一边不算改动,未改动的行保留我们的空白(和 git 的
-Xignore-space-change一样),和设置里的「忽略空白」是同一个开关 - ⋯ 里可以「比较 base 与左侧 / 右侧」,看某一边相对共同祖先改了什么,再「返回合并」
- ✕ 忽略之后,⌘Z(Windows / Linux 上 Ctrl+Z)可以撤回;结果栏在那之后改过时,⌘Z 撤销的是结果栏的编辑
- 保存时保留文件原来的换行符(\r\n 的文件以前会被存成 \n);还有冲突没解决时会先问一下
MyGit 0.3.5
- Windows 上可以直接打开 WSL 里的仓库:「通过 SSH 打开」对话框里多了「WSL」菜单,列出本机的发行版(WSL1、WSL2 都行),选一个就连上;也可以写
wsl+Ubuntu:~/code/repo,和 VS Code 的记法一样。git 和文件监视都在 Linux 里原生运行,比从\\wsl$\打开快得多,也不用在 WSL 里配 sshd。窗口上的标记显示「WSL · Ubuntu」,在 VS Code 一类编辑器里打开文件时用--remote wsl+Ubuntu - 修复:选择远程仓库时,在「文件夹」里写好路径直接点「打开这个文件夹」,打开的是下面列表停留的目录,而不是写的路径;现在打开写的路径,以
.开头、列表里不显示的目录也能这样打开
MyGit 0.3.4
- 「暂存的更改」和「更改」之间可以拖动调整上下比例,下次打开保持;暂存区默认占三成,不再和更改区平分(#3)
- 更改区上方加了筛选框,按路径筛选(不分大小写),标题旁显示「筛出数/总数」;筛选时「全部暂存」「全部取消暂存」只作用于筛出的文件(#3)
- 设置里新增「外观」:可以选跟随系统、浅色或深色,立即对所有窗口生效,下次启动也保持
- 修复:打开 SSH 远程仓库后,即使什么都不做,窗口也会每秒刷新三四次,空闲时占用约 4% CPU。原因是远端(macOS)的文件监视把 git 读取 index 也当成了改动;现在只改了文件属性的事件不再触发刷新,空闲 CPU 降到约 0%。只改文件权限(如
chmod +x)时,窗口重新获得焦点才会刷新
MyGit 0.3.3
- diff 里可以在改动之间跳转:F7 跳到下一处、⇧F7 跳到上一处(Windows / Linux 上是 Shift+F7);diff 上方也有上下箭头按钮,旁边显示「第 2/5 处」;⌘K 命令面板里也能找到
- 和 JetBrains 一样能跨文件跳:停在最后一处改动时按 F7 会先提示「再按 F7 去下一个文件」,再按一次就打开下一个文件、停在它的第一处改动;⇧F7 反过来,回到上一个文件的最后一处改动。提交里的文件列表和「暂存的更改」→「更改」列表都支持
MyGit 0.3.2
- 新标语:「轻快的原生 Git 客户端,远程仓库也能用」(A light, fast, native git client, for remote repositories too),欢迎窗口和「关于」里都换成了新的说法