Git GUI impian saya

Saya adalah pengembang game dan aplikasi seluler. Saya telah menulis cukup banyak kode di C ++ dan Swift. Dan, seperti banyak dari Anda, saya menggunakan sistem kontrol versi, khususnya, gith.

Git memiliki antarmuka baris perintah yang paling fungsional dan lusinan bahkan ratusan aplikasi untuk bekerja dengannya secara lokal menggunakan antarmuka grafis, yang hanya dapat menjalankan sebagian dari fungsionalitas git. Masalahnya adalah, saya telah menulis kode selama 10 tahun sekarang, tetapi saya belum menemukan klien GUI git yang sempurna (cocok untuk saya). Contoh: Github Desktop baru-baru ini keluar. Saya menggunakannya sampai saya perlu membayar untuk komit tertentu. Dan saya mengalami rasa sakit yang biasa karena aplikasi ini tidak tahu bagaimana melakukan ini. Dan lagi saya kembali ke terminal (dengan pelengkapan otomatis untuk git). Dan ada hal-hal seperti itu di setiap aplikasi GUI untuk gita. Namun, saya tidak datang ke sini untuk mengkritik mereka. Saya yakin Anda dan tanpa saya memiliki banyak keluhan tentang aplikasi ini. Saya sudah lama berpikir tentang apa yang seharusnya menjadi aplikasi GUI git yang ideal. Itu hanyalah sisa-sisa keinginanyang darinya sulit untuk mengumpulkan sesuatu yang utuh. Dan baru-baru ini, potongan-potongan pemikiran ini berkumpul dalam satu gambar. Di bawah ini saya akan menjelaskannya dalam format TOR (tugas teknis) dalam bentuk yang paling mudah dimengerti.

Klien Git GUI yang sempurna

Penting agar antarmukanya tidak terlalu rumit. Jika pengguna membuka aplikasi dan melihat lebih dari 20 tombol, itu artinya ide yang buruk. Sebagian besar pengguna, beralih ke konsol untuk bekerja dengan git, menulis perintah git statusuntuk mengetahui daftar file dengan status yang diubah. Oleh karena itu, aplikasi kita harus menampilkan hampir seluruh layar daftar file dalam bentuk hierarki yang memiliki status yang berubah (seperti file explorer / finder). Ini akan mencakup semua yang bisa kita lihat dengan perintahgit status: file yang diubah, file yang tidak terlacak, ditambahkan dan dihapus (mungkin saya lupa beberapa status). Setiap file harus, seperti pada konsol, ditampilkan dalam warna merah atau hijau, yang menunjukkan bahwa file tersebut telah ditambahkan ke komit. Anda dapat mengklik kanan pada file apa pun atau mengklik tiga titik di sisi kanan baris untuk membuka menu konteks. Dalam menu konteks, Anda dapat menambahkan file jika tidak ditambahkan ( git addperintah di terminal), mengatur ulang jika ditambahkan, menghapus jika tidak ada dalam indeks (bersih). Anda juga dapat mengklik kanan folder dan menambahkan seluruh folder ( git add folder). Reset bekerja dengan cara yang sama. Anda juga dapat menambahkan semuanya ke indeks dengan tombol kecil di sudut kiri atas pohon file. Anda dapat mengklik baris dengan file tersebut untuk membuka diff di layar penuh.

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 :

  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. .

Semuanya. Saya akan senang untuk setiap kritik dan saran di komentar. Saya akan menjawab pertanyaan mengapa saya membagikan ide di sini, tetapi saya tidak akan mulai menerapkannya sendiri. Saya sendiri terlibat dalam pengembangan game, saat ini saya bekerja untuk Playtika, dan di waktu senggang saya mengembangkan aplikasi untuk bekerja dengan SQLite https://sqliteman.dev . Saya sendiri akan dengan senang hati mulai mengembangkan klien GUI git ini, tetapi saya tidak punya waktu. Saya akan sangat senang jika orang lain melakukannya, sementara saya tidak keberatan jika seseorang melakukannya tanpa menyebutkan sumber idenya. Saya yakin bahwa idenya tidak berarti apa-apa dibandingkan dengan penerapannya. Dan saya akan sangat senang jika saya memiliki aplikasi GUI git impian saya.




All Articles