diff --git a/content/contributing/working-with-git.md b/content/contributing/working-with-git.md new file mode 100644 index 0000000..ec2b1c1 --- /dev/null +++ b/content/contributing/working-with-git.md @@ -0,0 +1,54 @@ ++++ +title = 'Working with GIT' +date = 2024-06-17T17:31:15+02:00 +draft = true ++++ +The preferred method of contributing patches to ExectOS is via our self-hosted [Gitea](https://git.codingworkshop.eu.org) +instance. + +### Initial Setup +First of all you will have to create an account on our [Gitea](https://git.codingworkshop.eu.org) instance. Do note that +you can also use your existing GitHub or GitLab account via OAuth. Creating new account on our Gitea is pretty straight +forward, anyway: + 1. Go to our Gitea instance and click on "[Register](https://git.codingworkshop.eu.org/user/sign_up)" link in top, + right corner. + 2. Fill in your information. + 3. Add your SSH key(s) for easier pushing via SSH instead of HTTPS. + 4. Consider also enabling 2FA for improved security access and signing your commits with GPG. + +### Cloning Repositories + 1. Go to Gitea's frontage after you’ve signed in and search for the repository you want to clone. Click on its name to + open it. + 2. Click on 'Fork' button, to create your own copy of the repository. + 3. Either clone your fork of it, with + ``` + git clone ssh://git@git.codingworkshop.eu.org:8822//.git . + ``` + or if you already cloned the repo you can add your fork as remote, with + ``` + git remote add ssh://git@git.codingworkshop.eu.org:8822//.git + ``` + +### Proper GIT Setup +ExectOS uses GIT for Source Code Management (SCM) and GIT uses a username to associate commits with an identity. The GIT +username is not the same as your Gitea username. You can change the name that is associated with your GIT commits. The new +name you set will be visible in any future commits you push to Gitea from the command line. In order to accept your +patches, we require you to provide your real name and valid e-mail address. This can be done with the following commands: +``` +git config --global user.name "" +git config --global user.email "" +``` +Above command will update username and email globally, for every repository on your computer. Alternatively, these changes +can be introduced for a single repository, by changing the current working directory to the local repository where you want +to configure the name that is associated with your GIT commits and issueing the following commands: +``` +git config user.name "" +git config user.email "" +``` + +### Keeping Forks Updated +You should always ensure that you have the latest version of the repository you want to work on before starting your work to +avoid duplicating work and merge conflicts. You can do so with: +``` +git pull master --rebase +```