私はゲームとモバイルアプリケーションの開発者です。私はC ++とSwiftでかなりのコードを書きました。そして、多くの皆さんと同じように、私はバージョン制御システム、特にgithを使用しています。
Gitには、最も機能的なコマンドラインインターフェイスがあり、グラフィカルインターフェイスを使用してローカルで操作するための数百とは言わないまでも数十のアプリケーションがあります。これらのアプリケーションは、gitの機能の一部しか実行できません。問題は、私は10年間コードを書いていますが、完璧な(私に適した)gitGUIクライアントを見つけられなかったことです。例:GithubDesktopが最近登場しました。特定のコミットをチェックアウトする必要があるまで使用しました。そして、私はこのアプリケーションがこれを行う方法を知らないという通常の痛みを経験しました。そして再びターミナルに戻りました(gitの自動完了を使用)。そして、gitaのすべてのGUIアプリケーションにはそのようなものがあります。しかし、私は彼らを批判するためにここに来ませんでした。私がいなくても、あなたはこれらのアプリケーションについて多くの不満を持っていると確信しています。私は長い間、理想的なgitGUIアプリケーションがどうあるべきかについて考えていました。彼らはつかの間の欲望のかけらでしたそこから何か全体を組み立てることは困難です。そしてごく最近、これらの考えの断片が1つの写真に集まった。以下では、これをTOR(技術的タスク)の形式で最もわかりやすい形式で説明します。
完璧なGitGUIクライアント
インターフェイスがそれほど複雑でないことが重要です。ユーザーがアプリを開いて20個を超えるボタンが表示された場合、そのアイデアは最悪です。ほとんどのユーザーは、コンソールに切り替えてgitgit status
を操作し、ステータスが変更されたファイルのリストを見つけるコマンドを記述します。したがって、アプリケーションでは、画面のほぼ全体に、ステータスが変更された階層形式のファイルのリストが表示されます(ファイルエクスプローラー/ファインダーなど)。コマンドで見ることができるすべてのものが含まれますgit status
:変更されたファイル、追跡されていないファイル、追加および削除(ステータスを忘れた可能性があります)。各ファイルは、コンソールと同様に、赤または緑で表示されます。これは、ファイルがコミットに追加されたことを示します。任意のファイルを右クリックするか、行の右側にある3つのドットをクリックして、コンテキストメニューを表示できます。コンテキストメニューでは、ファイルが追加されていない場合は追加し(git add
ターミナルのコマンド)、追加されている場合はリセットし、インデックスにない場合は削除します(クリーン)。フォルダを右クリックして、フォルダ全体を追加することもできます(git add folder
)。リセットも同じように機能します。ファイルツリーの左上隅にある小さなボタンを使用して、すべてをインデックスに追加することもできます。ファイルのある行をクリックして、ファイルの差分を全画面で開くことができます。
Xcode , (pulling, pushing, idle). . , - : .
- (git log
- , git branch
- , git commit
- , git push
- remote, git pull
- remote, git remote
- remote ..) tab ( GTA 5).
. (, pull, push, fetch). , (, push) ( remote , force), . tab . esc, . push, . .
git GUI && ||. , , :
git checkout dev && git pull && git checkout - && git merge -
4 :
dev
dev
, dev
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で働いており、空き時間にはSQLitehttps://sqliteman.devで作業するためのアプリケーションを開発しています。私自身、このgit GUIクライアントの開発を喜んで開始しますが、時間がありません。誰か他の人がやったらとても嬉しいですが、アイデアの出所を言わずに誰かがやってもかまいません。このアイデアは、実装とは異なり、何の価値もないと確信しています。そして、夢のgitGUIアプリケーションがあればとても嬉しいです。