我梦想的Git GUI

我是游戏和移动应用程序开发人员。我已经用C ++和Swift编写了很多代码。而且,像你们中的许多人一样,我使用版本控制系统,尤其是gith。

Git具有功能最强大的命令行界面,以及数十个(如果不是数百个)使用图形界面在本地使用它的应用程序,它们只能执行git的部分功能。麻烦的是,我已经编写代码已有十年了,但是我没有找到完美的(适合我的)git GUI客户端。示例:Github Desktop最近问世。在需要结帐特定提交之前,我一直使用它。而且我经历了通常的痛苦,即该应用程序不知道如何执行此操作。然后我又回到了终端(git的自动补全功能)。在gita的每个GUI应用程序中都有这样的事情。但是,我不是来这里批评他们的。我相信您和没有我的人都会对这些应用程序有很多抱怨。我思考了很长时间,一个理想的git GUI应用程序应该是什么。他们转瞬即逝的欲望从中很难组装整体。直到最近,这些想法的碎片都聚集在了一起。下面,我将以最容易理解的形式以TOR(技术任务)的格式对此进行描述。

完美的Git GUI客户端

重要的是接口不要超级复杂。如果用户打开该应用程序并看到20个以上的按钮,则该想法很糟糕。大多数用户切换到控制台以使用git时,会编写命令git status来查找状态已更改的文件列表。因此,我们的应用程序应该在整个屏幕上以层次结构的形式显示状态已更改的文件列表(例如文件浏览器/查找器)。它将包含我们可以通过命令看到的所有内容git status:已更改文件,未跟踪文件,已添加和删除(也许我忘记了某些状态)。与控制台中一样,每个文件都应以红色或绿色显示,表明已将其添加到提交中。您可以右键单击任何文件,或单击该行右侧的三个点以打开上下文菜单。在上下文菜单中,可以添加未添加的文件(git add终端中的命令),如果添加了文件,则将其重置,如果不在索引中,则将其删除(干净)。您也可以右键单击该文件夹,然后添加整个文件夹(git add folder)。重置工作方式相同。您还可以使用文件树左上角的小按钮将所有内容添加到索引。您可以单击该文件所在的行以全屏打开该文件的差异。

窗口顶部有一个单独的标头块,类似于Xcode,具有分支的名称和当前正在发生的状态(拉,推,空闲)。就是这样 也就是说,默认窗口仅显示状态:当前分支和文件的状态。

当用户打算执行某些操作git log-查看历史记录,git branch-分支操作,git commit-提交,git push-上传到远程,git pull-从远程下载,git remote-管理远程列表等)时,他必须按住选项卡才能调用操作选择器(就像GTA 5中的武器选择器一样)。 

. (, pull, push, fetch). , (, push) ( remote , force), . tab . esc, . push, . .

git GUI && ||. , , :

git checkout dev && git pull && git checkout - && git merge -

4 :

  1. dev

  2. dev

  3. , dev

  4. dev

&& , - , . , git GUI , ( , ). git GUI . 

, , , tab alt ( shift, ). , checkout, dev, ok , . - , tab alt, checkout ok, , , (tab - alt). - . tab ( esc ), , , . , Red Alert 2. z . , , .

, , (, ) . . ,

3a962a4a5979b338e4bfce1333b3009529c0ad08

d8def5c1b13a83a1df8797fab3d34760596df692

cffcf32979526f2e2d26c06fe0b73666a7ca0e87

2757ed191106b51b729c5437334d9d19b0d081b8

0fef00c89e8d60e41a452ffc31a8300b551116be

5e4fe2033549b89ef86834e2fcba350fa5099443

886602d02ec39f853c9b708957f27c3fbb51e66c

250ce1cd7b0b6ec415898e0a26cda49a2d326bd3

4a4a5e0f6257bb6c179981c4fb69011be7bbe53d

. . - . .

↕️ 3a962a4a5979b338e4bfce1333b3009529c0ad08

☘ d8def5c1b13a83a1df8797fab3d34760596df692 

◽️ cffcf32979526f2e2d26c06fe0b73666a7ca0e87

⛎ 2757ed191106b51b729c5437334d9d19b0d081b8

㊙️ 0fef00c89e8d60e41a452ffc31a8300b551116be

5️⃣ 5e4fe2033549b89ef86834e2fcba350fa5099443

⏹ 886602d02ec39f853c9b708957f27c3fbb51e66c

⏸ 250ce1cd7b0b6ec415898e0a26cda49a2d326bd3

↖️ 4a4a5e0f6257bb6c179981c4fb69011be7bbe53d

, . , ( pull’), , , , . - : github, bitbucket, teamcity. .

就是这样 我会对评论中的任何批评和建议感到高兴。我将回答这个问题,为什么我要在这里分享这个想法,但我只是不会自己开始实施。我本人从事游戏开发,目前在Playtika工作,在空闲时间,我开发了一个用于SQLite https://sqliteman.dev的应用程序我本人很乐意开始开发此git GUI客户端,但我没有时间。如果有人这样做我会很高兴,而我绝对不介意有人在不提及想法来源的情况下这样做。我敢肯定,这个想法与实现相比没有任何价值。如果我有梦想的git GUI应用程序,我将非常高兴。




All Articles