Git Support Feature Request

A nice feature would be to add git support into the IDE.

What exactly does that mean?

I imagine he means integrated source control using Git à la Vscode, Eclipse, QT Creator and possibly other more advanced IDE's:

I must admit that I haven't had the opportunity to explore the merits of that feature in Vscode yet, but I imagine that anything that is easier to use than the current manual command line approach that I am still working with has to be an advantage. I haven't had a chance to have a look at the feature yet, but it is on my list of things to do.

It would, of course, have been helpful for the OP to have expanded a bit more on the statement to explain why adding support for Git would be beneficial?

I am nevertheless curious as to whether the Arduino Team have any plans to add such a feature to the IDE at some point, or whether that is considered too "advanced" given the original target audience, i.e. students without a background in engineering?

For hobbyists, I think it's overkill. I have no Git training, but I do use the desktop facility in the possibly vain hope that I will get updates for the software I use from the open-source world. However, I'm not sure if that's true, and I don't know how it works, but someday I might, and if I do, then my Git repositories of interest to me will already be populated.
One telltale sign is that since many libraries originate in Git, if Arduino had any interest, they would have implemented a direct connection rather than downloading a zip file, etc.
Professional developers are likely using VS Code, so they have Git and much more. I don't see a place for it in the Arduino hobbyist/student community.

1 Like

Hi @dephillipsmi. We try to keep the feature set of Arduino IDE very focused on the essentials for developing Arduino sketch projects. Although version control of such projects is important, excellent tools are already available for doing that, so there is no need for us to add that capability to Arduino IDE.

One of the primary goals for Arduino IDE is that it be friendly to beginners. A carefully designed and curated user interface is very important to achieving that goal. Added features tend to increase the complexity of the primary user interface.

My recommendation is that you use a standalone Git client application. The type of advanced developer who uses Git is likely to end up wanting to do version control on multiple distinct types of projects, which are developed using various IDEs and tools. If you use version control features integrated with your IDE, you will need to learn and remember how to use the feature of each IDE, and may even end up needing to use a standalone version control tool in some cases anyway. Conversely, you can use a single standalone Git client for all your version control needs.

There are several excellent free open source Git clients. I can provide some information on my experiences:

GitHub Desktop

I got started with GitHub Desktop and found it to be very well designed. I haven't used it in years, but I am sure it is still a very good option:

https://github.com/apps/desktop

Although GitHub Desktop has integration with the GitHub Git hosting service, this is also a general purpose Git client that can be used even with repositories that are not hosted on the GitHub website.

Git Extensions

I am currently using the Git Extensions client:

I switched from GitHub Desktop to Git Extensions because, at that time, GitHub Desktop had a very simplified design that made it a perfect choice for me when I was getting started with Git, but didn't provide some more advanced capabilities I found I needed later once I became proficient with Git. I believe that GitHub Desktop has become more capable over time, so it is possible that I wouldn't have found the need to migrate from the GitHub Desktop we have today. Git Extensions is excellent, but the user interface is quite complex, so it might not be the best choice for someone who is only tentatively getting started with using Git. The big downside of Git Extensions is that it is Windows-only, so it won't be a good choice for someone who does development work on machines that use other operating systems.

Adding Git Support To Arduino IDE

If you are set on having an integrated version control feature in Arduino IDE, you may be interested to know that it is possible for users to add additional capabilities to Arduino IDE by installing VS Code extensions. The open source community has created thousands of these extensions. A good place to find extensions is the Open VSX Registry. You can see various Git-related extensions here:

https://open-vsx.org/?search=git&sortBy=relevance&sortOrder=desc

You can use the instructions here to install extensions in Arduino IDE:

https://github.com/arduino/arduino-ide/blob/main/docs/advanced-usage.md#3rd-party-themes

Even though those instructions are for installing themes, a theme is just a specific type of extension and the instructions will actually work for any extension.


:warning: Please note that Arduino does not provide official support for use of 3rd party extensions with Arduino IDE. So this is very much an "at your own risk" thing.


2 Likes