Everyone is making a Git client app.
I dream that it will be fun if the number of people who make their own works increases and such a neighborhood arises.
My situation,
Is the motive that I am aware of. Well there may have been others. (Currently, I am developing iOS and Android apps as a freelance engineer.)
Also, thanks to reading "I made a GUI Git client app" last year. I think it was a couple of years earlier to try to make it myself.
After wondering if I could make it to the point where I could make it Thinking about what you want from a git GUI client, When I was exporting and prioritizing, I came to think as follows.
I think it's better to divide what you do with git into the following two phases.
git add
, git reset
, git commit
, etc.)git merge
, git rebase
, git reset
, etc.)You don't necessarily have to do these two phases in the same application. Use your favorite application and sometimes hit the command line directly.
Of course, it goes back and forth, so the same application is easier,
Some functions may not be classified into either.
(For example, git bisect
may be better prepared for something special.)
But if you want to make a git application, it seems better to think separately here.
And you can make a commit no matter how you use it Above all, I want line-by-line stage / unstage as a lifeline, so First of all, I decided to make this.
These are the articles I have written on qiita and the articles I plan to write in the future.
5 things to do for line-by-line stage / unstage
1. Output diff as the original patch
2. Select the line you want to stage / unstage
3. Edit the body of hunk``
4. Recalculate the hunk header``
5. Apply the final patch
It was impossible to use JGit, so I talked about using git.exe as it is. I haven't written in detail, but Electron has struck me back. I will revenge someday.
3. Edit the body of hunk``
4. Recalculate the hunk header``
1. Output diff as the original patch
Display for 2. Select the line you want to stage / unstage
Continued from 2. Select the line you want to stage / unstage
5. Apply the final patch
Discard local changes (unfinished)
I'm trying hard to deal with things that are impossible on the command line, so I'll die if I don't write a test. It would be great if only the test part could be cut out and made into a library, Maybe it's tough in the near future, so I'll write how I'm testing it. It was my first time to write test code.
For some reason, I was able to commit. There are minor issues and problems, but it is a paragraph.
Since I quit my job, I have less time to use it, "If you try to use it at work, it lacks the necessary functions and implements it at full speed." Because of that, it also has a good effect.
Next, as a big picture,
First of all, I think about the UI that displays the commit history for that purpose. First of all, I would like to make the display of complicated graphs look good without trying hard.
By the way, the second thing I want from a GUI client is git rebase -i
.
I feel that the hurdles are high, but I'm sure it will be managed.
By the way, recently, in my Windows 10 environment
I'm crying because I started stack overflowing with git rebase
.
Since it is Java, it works everywhere, but how should I distribute it? I haven't researched anything yet, but I'm just saying "I wish I had a strong store".