{"id":28631264,"url":"https://github.com/zaccharieramzi/git-tuto","last_synced_at":"2025-07-09T08:08:14.584Z","repository":{"id":42388743,"uuid":"225334203","full_name":"zaccharieramzi/git-tuto","owner":"zaccharieramzi","description":"A very sparse repo to practice the basics of git and GitHub flow in open source","archived":false,"fork":false,"pushed_at":"2023-11-25T10:05:09.000Z","size":13,"stargazers_count":4,"open_issues_count":3,"forks_count":19,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T09:32:08.684Z","etag":null,"topics":["git","git-tutorial","practice"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zaccharieramzi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-12-02T09:20:15.000Z","updated_at":"2024-04-07T13:40:04.000Z","dependencies_parsed_at":"2023-11-25T11:21:32.120Z","dependency_job_id":"150fba28-d0a7-47d4-8002-2a0e0fde12de","html_url":"https://github.com/zaccharieramzi/git-tuto","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zaccharieramzi/git-tuto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaccharieramzi%2Fgit-tuto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaccharieramzi%2Fgit-tuto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaccharieramzi%2Fgit-tuto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaccharieramzi%2Fgit-tuto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zaccharieramzi","download_url":"https://codeload.github.com/zaccharieramzi/git-tuto/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaccharieramzi%2Fgit-tuto/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259470953,"owners_count":22862999,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","git-tutorial","practice"],"created_at":"2025-06-12T13:10:28.419Z","updated_at":"2025-06-12T13:10:29.459Z","avatar_url":"https://github.com/zaccharieramzi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Git Tutorial\n\n![GitHub Workflow Build Status](https://github.com/zaccharieramzi/git-tuto/workflows/Continuous%20testing/badge.svg)\n\nThis repository will help you practice the basics of the GitHub flow and how to work on open source projects.\n\nHere is a link to a presentation to git in general: https://docs.google.com/presentation/d/1vfsG__2-T7xJYGKFs9HfPKmaoMN1Je0V0h7gLyiY1AU/edit?usp=sharing\n\n## Steps\nThese steps assume that you [have installed git locally](https://www.atlassian.com/fr/git/tutorials/install-git), that you [have created a GitHub account](https://github.com/join), and [have added your local ssh key](https://help.github.com/en/enterprise/2.15/user/articles/adding-a-new-ssh-key-to-your-github-account) to it.\n\n1. Fork this repo, using the fork button in the top right corner.\n\n2. Clone your forked repo locally. `git clone git@github.com:\u003cyour-github-handle\u003e/git-tuto.git`\n\n3. Add the original project as a distant repo. `git remote add upstream https://github.com/zaccharieramzi/git-tuto.git`\n\n4. Create a new branch to add your name to the list of people who have participated to the tutorial. `git checkout -b \u003cyour-name-or-pseudonym\u003e`\n\n5. Add your name to the `participants.csv` file. `echo '\u003cyour-name-or-pseudonym\u003e,\\n' \u003e\u003e participants.csv`\n\n6. Stage and commit your changes. `git add participants.csv \u0026\u0026 git commit -m'Added \u003cyour-name-or-pseudonym\u003e to the participants file'`\n\n7. Push your local branch to your distant repo. `git push origin \u003cthe-name-of-your-branch\u003e`\n\n8. Open a new Pull Request (PR): https://github.com/zaccharieramzi/git-tuto/compare. You have an example PR [here](https://github.com/zaccharieramzi/git-tuto/pull/1).\n\n9. Iterate with feedback.\n\n10. Once the PR is (squashed and) merged, don't forget to update your local repo (`git checkout master \u0026\u0026 git pull upstream master`) and your distant repo (`git push origin master`).\n\n## Continuous Integration tutorial\n\n### Overview of Continuous Integration\nOnce you have understood how the GitHub flow works, you can try to take part in the continuous integration (CI) tutorial.\nBut first, what is CI?\nCI is a process that can be best described as the continuous testing of the code as parts are added to it.\nThis makes sure that a new addition to the codebase does not alter unexpectedly the behaviour of the code.\n\nMany tools exist but we will here use only Travis CI.\nTo set it up you just need to register to [their website](https://travis-ci.com/), add your repo to the list of watched repositories, and then add a travis config file to your project.\nThe travis config file is a [YAML file](.travis.yml) containing a list of instructions on how to run the tests correctly.\n\n### Steps\nThis assumes you have taken the steps 1-4 of the git tutorial.\n\n1. Add a file \u003cyour-name\u003e_function.py to the [functions](ci_tutorial/simple_functions) folder.\n\n2. In this file, write a simple function that can be easily tested.\nAn example is my [function file](ci_tutorial/simple_functions/zac_function.py).\nThe function doesn't have to be about numbers but can be about all the built-in data structures python provides.\n\n3. Add a corresponding unit test for this new function.\nAn example of a corresponding unit test is [mine](ci_tutorial/tests/simple_functions_test/zac_function_test.py).\n\n4. Perform the steps 6-10 of the git-tutorial with the slight exception that you need to have a more suited commit message.\n\n## Contributing\n\nYou are free to suggest improvements both on the presentation and on this tutorial using the [Issues of this repo](https://github.com/zaccharieramzi/git-tuto/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc).\nA first good contribution might be for example to add the Contributing guidelines.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzaccharieramzi%2Fgit-tuto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzaccharieramzi%2Fgit-tuto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzaccharieramzi%2Fgit-tuto/lists"}