{"id":27442567,"url":"https://github.com/yorgosbas/contribution-guidance","last_synced_at":"2026-01-23T11:53:05.752Z","repository":{"id":192450443,"uuid":"259587796","full_name":"YorgosBas/Contribution-Guidance","owner":"YorgosBas","description":"Ένας γρήγορος οδηγός για συνεισφορά κώδικα στο github","archived":false,"fork":false,"pushed_at":"2020-04-28T12:47:50.000Z","size":997,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-09-04T20:08:17.168Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"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/YorgosBas.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":"2020-04-28T09:13:28.000Z","updated_at":"2023-09-04T20:08:19.524Z","dependencies_parsed_at":"2023-09-04T20:18:47.792Z","dependency_job_id":null,"html_url":"https://github.com/YorgosBas/Contribution-Guidance","commit_stats":null,"previous_names":["yorgosbas/contribution-guidance"],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YorgosBas%2FContribution-Guidance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YorgosBas%2FContribution-Guidance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YorgosBas%2FContribution-Guidance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YorgosBas%2FContribution-Guidance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YorgosBas","download_url":"https://codeload.github.com/YorgosBas/Contribution-Guidance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248983946,"owners_count":21193667,"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":[],"created_at":"2025-04-15T00:30:47.120Z","updated_at":"2026-01-23T11:53:00.707Z","avatar_url":"https://github.com/YorgosBas.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Contribution Guidance\n\n## How Git works\nHere is a basic overview of how Git works:\n\n* Create a \"repository\" (project) with a git hosting tool (like Bitbucket)\n* Copy (or clone) the repository to your local machine\n* Add a file to your local repo and \"commit\" (save) the changes\n* \"Push\" your changes to your master branch\n* Make a change to your file with a git hosting tool and commit\n* \"Pull\" the changes to your local machine\n* Create a \"branch\" (version), make a change, commit the change\n* Open a \"pull request\" (propose changes to the master branch)\n* \"Merge\" your branch to the master branch\n\nfrom https://www.atlassian.com/git\n\n## Πρώτος Τρόπος GitHub\n\n### 1. Κάνουμε fork το repository του γενικού (μια φορά)\n\n![fork](images/forkkk.png)\n\n### 2. Ανεβάζουμε τον κώδικά μας στο fork (έχει το όνομά μας μπροστά)\nΚάνουμε upload files και πατάμε commit. Τώρα ο κώδικας αυτός είναι μόνο στο δικό μας repository. Για να πάει στο γενικό repository κάνουμε το 3\n\n### 3. Κάνουμε Pull Request\nΜας πηγαίνει στο repository του γενικού εκεί προσέχουμε να έχουμε ως base repository τo γενικό και head το δικό μας. Πατάμε Pull request\n\n![pull](images/pull.png)\n\n### 4. Περιμένουμε έλεγχο για των κώδικα\nΟ κώδικά σας θα εξεταστεί για πιθανά bugs\n\n### 5. Έγκριση κώδικα (merge)\nΟ κώδικας εγκρίθηκε και ανέβηκε στο γενικό repository\n\n## Ανανέωση κώδικα\nΌταν ανεβάζουν πολλά άτομα κώδικα στο γενικό, το δικό μας repository δεν ανανεώνεται αυτόματα και μένει πίσω. Για να έχουμε την τελευταία έκδοση του κώδικα κάνουμε:\n\n### 1. Πηγαίνουμε στο δικό μας fork\nΒλέπουμε ότι είμαστε πίσω σε commit. Πατάμε Pull Request\n\n![pullr](images/beforee.png)\n\n### 2. Κάνουμε Pull Request\nΠροσέχουμε ως base repository να είναι το δικό μας και head του γενικού. Πατάμε Pull Request\n\n![pullr](images/pulll.png)\n\n### 3. Επιτυχία (merge)\nΤώρα θα λέει ότι είμαστε μπροστά. Δεν μας πειράζει απλώς συγκρίνει τον αριθμό των commits. Ο κώδικας είναι μια χαρά\n\n![pullr](images/afterr.png)\n\n## Δεύτερος Τρόπος μέσω προγράμματος Source Tree ή IDE\nΚαλύπτεται JetBrains και Source Tree, ωστόσο άμα καταλάβετε την φιλοσοφία μπορείται να διαχειριστείται τα πάντα\n\n## Source Tree\n\n## 1. Clone \nΚάνουμε clone το repository είτε το γενικό είτε το fork μας. Ανάλογα πως δουλεύει κάθε ομάδα\n\n![stclone](images/stclone.png)\n\n## 2. Commit\nΓράφουμε κώδικα και μόλις τελειώσουμε εμφανίζονται οι αλλαγές στο File Status. Πατάμε Stage όσα θέλουμε, γράφουμε ένα μήνυμα και commit\n\n## 3. Push στο fork\nΟι αλλαγές έγιναν τοπικά άρα για να ενημερωθεί το repository στο github πατάμε Push, επιλέγουμε το δικό μας repository (origin), το branch και πατάμε Push\n\n![stpush1](images/stpush1.png)\n\n## Pull από fork\nΑν θέλουμε να πάρουμε κάποιες αλλαγές που έγιναν στο fork κάνουμε Pull\n\n![stpull1](images/stpull1.png)\n\n## Pull στο γενικό\nΓια να πάρουμε την τελευταία έκδοση του κώδικα από το γενικό repository (από εκεί που κάναμε fork), επιλέγουμε settings και βάζουμε το γενικό repository με ένα όνομα δικό μας (συνήθως master) και το λινκ\n\n![stpullg](images/stpullg.png)\n![stpullg1](images/stpullg1.png)\n![stpullg2](images/stpullg2.png)\n![stpullg3](images/stpullg3.png)\n![stpullg4](images/stpullg4.png)\n\n## Push από γενικό\nΕφόσον βάλαμε το γενικό από τα settings μπορούμε να ανεβάσουμε ένα δικό μας κομμάτι κώδικα στο γενικό\n\n![stpushg](images/stpushg.png)\n\n## Pull Requests\nΤα pull request γίνονται μέσω web ωστόσο υπάρχει η επιλογή να δημιουργηθεί στο gui\n\n![stpur](images/stpur.png)\n\n## IDE \nΠολλά προγράμματα ide προσφέρουν integration με GitHub. Ο παρακάτω τρόπος είναι για προγράμματα JetBrains. Παρόμοια και σε υπόλοιπα\n\n### 1. Set-Up\nΠηγαίνουμε File -\u003e settings -\u003e version control -\u003e GitHub και βάζουμε τον λογαριασμό μας\n\n![settings1](images/settings1.png)\n![login1](images/login1.png)\n\n### 2. Clone\nΕφόσον κάναμε fork το γενικό repository μπορούμε τώρα να το κάνουμε clone και να το έχουμε τοπικά στον υπολογιστή μας\n\n![GetVCS1](images/GetVCS1.png)\n![clone1](images/clone1.png)\n\n### 3. Commit\nΓράφουμε κώδικα και όταν τελειώσουμε κάνουμε τοπικά commit, γράφουμε ένα σχόλιο και μας εμφανίζει τον γράφο της συνεισφοράς\n\n![commit1](images/commit1.png)\n![commit2](images/commit2.png)\n![overview1](images/overview1.png)\n\n### 4. Push\nΟι αλλαγές όπως είπαμε έγιναν τοπικά. Για να ανεβούν στο github πηγαίνουμε VCS -\u003e VCS operations -\u003e push\n\n![push1](images/push1.png)\n![push2](images/push2.png)\n![push3](images/push3.png)\n![merge1](images/merge1.png)\n\n### 5. Επιτυχία\nΑν ανανεώσουμε το github repository θα υπάρχουν οι αλλαγές. Τώρα είτε ακολουθούμε βήμα τρία απο τον πρώτο για Pull request είτε απο το IDE επιλέγουμε\n\nVCS -\u003e Git -\u003e Create Pull Request και επιλέγουμε το repository που θέλουμε να κάνουμε\n\n![pullrequest1](images/pullrequest1.png)\n\n\n## Ανανέωση κώδικα\nΌταν ανεβάζουν πολλά άτομα κώδικα στο γενικό, το δικό μας repository δεν ανανεώνεται αυτόματα και μένει πίσω. Για να έχουμε την τελευταία έκδοση του κώδικα κάνουμε:\n\n### 1. Pull από το γενικό \nΑρχικά παίρνουμε τις αλλαγές που έκαναν κάποιοι developers από το γενικό στο δικό μας κώδικα τοπικά\n\n![pullfromgeneral1](images/pullfromgeneral1.png)\n![pullfromgeneral](images/pullfromgeneral.png)\n\n### 2. Push στο δικό μας\nΑκολουθούμε βήμα 4 απο τον δεύτερο τρόπο κάνοντας push στο δικό μας repository\n\n### Notable Mention: Pull από το δικό μας repository\nTo Update Project κάνει pull απο το repository μας όχι απο το γενικό.\n\n![pull1](images/pull1.png)\n![pull2](images/pull2.png)\n\n#### Conflict\nαμα κάτι δεν πάει καλά θα βγει conflict. Πατάμε πάνω στα αρχεία και μετά επιλέγουμε πιο θα κρατήσουμε\n\n![conflict2](images/conflict2.png)\n![conflict1](images/conflict1.png)\n\n\n## Git\nΓια όσους θέλουν να μάθουν git (ευκαιρία είναι) τα βήματα πάνω θα γίνονται με command line. https://www.atlassian.com/git\n\n## Disclaimer\nΗ δικιά μας ομάδας δουλεύει με ένα γενικό repository και κάθε άτομο το έχει κάνει fork. Ενδεχομένος να μην χρειαστεί να κάνετε fork και να δουλεύετε μόνο με ένα γενικό και άρα όλες οι αλλαγές να γίνονται εκεί. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyorgosbas%2Fcontribution-guidance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyorgosbas%2Fcontribution-guidance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyorgosbas%2Fcontribution-guidance/lists"}