====== Tortoise Git ======
{{https://up.picr.de/50273492ev.jpg?nolink&500}}
TortoiseGit provides overlay icons showing the file status, a powerful context menu for Git and much more! It is under active development and free of charge. Assuming you’ve downloaded the tortoise git client from [[https://tortoisegit.org/download/|here: tortoisegit.org/download]]: run the installer, spam the next button, all the default options are fine, get it installed.
==== Installation ====
{{https://up.picr.de/50273659se.png?nolink&300}}
Download it from the official website [[https://tortoisegit.org/download/|here: tortoisegit.org/download]] and for your correct architecture. Tortoise Git is one of the tools that still support x86-platform. If you are curious you can also find some older builds that will run under Windows XP - even not recommended.
Assure you also installed the git-tools and Tortouise Git can find ''git.exe''. If all worked fine you can see the GIT-extension right in your explorer context-menu. The additional git-tools are free to download from [[https://git-scm.com/install/windows|here]]. If you need 32bit git-tools then take them from [[here|https://github.com/git-for-windows/git/releases]]
**Sidenote**
You don't need any SSH keys for github access
===== Fork Batocera =====
I assume you've created a Github account - if not then don't hestiate and [[grap your account here|https://github.com/signin]]. If you have your own account it is time to Fork Batocera. Therefore visit the developers page https://github.com/batocera-linux/batocera.linux/ and click on the fork icon. This will mirror the current batocera-repository into your github account. The reason is that you can't alter the code directly from the main-location, so you kindly ask for a change by a so called **Pull Request**.
{{https://up.picr.de/50273716do.png?nolink}}
The developers will check your code and merrily add it, if code quality is fine and the added software is dedicated for free usage (MINT or GNU licencse for example)
===== Download Batocera =====
From the context-menu, click on a folder where you want to download the whole GIT-Repro, source adress is your github account. Usually it looks like ''https://github.com//batocera.linux''. It will take a while do download the whole repro from there you have physical access all Batocera-files. It is time to start our first Pull Request
===== The 1st Pull Request =====
{{https://up.picr.de/50273797ly.png?nolink&300}}
You click on your file-repro in from context-menu you select: **Create new Branch**
A windows will popup from where you enter the name of the branch (only a-z and score is allowed, no whitespace), hit **Okay**. A new windows will appear (that is the info the new branch is created) and hit **Close**.
Give the branch a usefull name, it is much more easier to understand from first view what your patch will do. As it's your first commit why not give it this name: ''my-1st-commit''
So what you've done now is to tell your local git that you work on a new branch. That means all things you change will not affect the master/main code. This is super cool because you can always switch back to the original state. You will see that you are working in a new branch if you click on your git-directory so you maybe already mentioned: ''master'' changed to ''your-branch-name''
----
{{https://up.picr.de/50273917am.png?nolink&500}}
From there you make your change. You can alter a file, add new images. Add new emulators and so on....
I've added a new file ''A new file.txt'' in this example. Just copied it from my windows explorer inside the code folder
- Right click on your repo located in windows
- Select **Commit to: my-1st-commit**
- A new windows appears, showing you are indeed in the branch **my-1st-commit**, enter a usefull message. One line is needed at least ad will be the headline of the later followed PR, the other lines are here for a further description.
- Check the file you want to upload, if it's a new added then you have to highlight the checkbox and then...
- Hit **Commit**
----
{{https://up.picr.de/50273988nv.png?nolink&500}}
- Click Push
- Click OK
- Click Close
----
{{https://up.picr.de/50273989ta.png?nolink&500}}
Now the changes are uploaded to your code space. Github will now automatically push it to Batocera. So go to ''https://github.com/batocera-linux/batocera.linux/pulls'' and you will see a highligted bar, telling you that there are changes made from your branch. Click **Compare & Pull Request** and from there you see exactly same text, you've entered into TortoiseGit in the Web Interface, too.
Read again, check your comments and your code base and then finally click **Create Pull Request** - you are now set
===== Working in space =====
Before we start be sure that we always start the most updated Batocera version. Therefore go to your repro under ''https://github.com//batocera.linux'' and hit the ''Sync Fork'' icon. From there
----
{{ https://up.picr.de/50273552mn.gif?nolink }}