meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
wiki:version_control [2026/10/29 12:55] – tmhwiki:version_control [2026/11/02 09:33] (current) – [What is Github or a git forge?] minor edit tmh
Line 1: Line 1:
-# Version control guidelines+# Version control guide 
 + 
 +## Video tutorial 
 +After reading this quick guide, and learning the basic concepts, you can check out this [video tutorial](https://studentuef-my.sharepoint.com/:v:/r/personal/topimath_uef_fi/_layouts/15/stream.aspx?id=%2Fpersonal%2Ftopimath%5Fuef%5Ffi%2FDocuments%2FVideos%2Ffingreen%2Dversion%2Dcontrol%2Dtutorial%2Dedit%2Emp4&share=cQpn2hyZ4H9QRrLlKHNVA2JQEgUCrxoyV%2DnG5HzOFIuYpup%2DpQ). It covers a basic scenario of working on Fingreen (or Eurogreen): some new development, rebasing the changes on an updated main branch, solving the conflicts, and opening a pull request.
  
 ## What is Git? ## What is Git?
  
-Git is a version control system. It means it can track differences in files and keep their history. It is most suited for tracking text files (including code), because the differences are easy to read and when a file has conflicting changes from multiple development tracks, these conflicts can be solved. However, it can also track binary files, like spreadsheets or images or anyhthing else.+Git is a version control system. It means it can track differences in files and keep their history. It is most suited for tracking text files (including code), because the differences are easy to read and when a file has conflicting changes from multiple development tracks, these conflicts can be solved. However, it can also track binary files, like spreadsheets or images or anything else.
  
 A **git repo** is a directory ("folder") on your computer that includes files tracked by git. A **git repo** is a directory ("folder") on your computer that includes files tracked by git.
Line 16: Line 19:
 Github is a hosting platform for **remote repositories**, also called a "forge". It means that it can store your git-tracked project files outside your computer and easily work on them together with others. It also has a nice interface for interacting with the repository, as do other forges. Github is owned by Microsoft. There exist other similar platforms, such as [Codeberg](https://codeberg.org), which is free. Github is a hosting platform for **remote repositories**, also called a "forge". It means that it can store your git-tracked project files outside your computer and easily work on them together with others. It also has a nice interface for interacting with the repository, as do other forges. Github is owned by Microsoft. There exist other similar platforms, such as [Codeberg](https://codeberg.org), which is free.
  
-So far, Eurogreen and Fingreen are hosted on Github. New projects could benefit from using Codeberg, with a better free featureset and European ownership of the platform.+So far, Eurogreen and Fingreen are hosted on Github. New projects could benefit from using Codeberg, with a better free featureset and European ownership of the platform. In any case, it is easy to migrate a project from one host to another.
  
 ## Guidelines for working with git effectively ## Guidelines for working with git effectively
Line 28: Line 31:
  
 ### Pull-requests ### Pull-requests
-Instead of just pushing our changes directly into main, it is usually a good idea to open pull requests instead. They could actually be called merge requests, because the idea is to merge some changes from one branch into another. A pull request can be viewed and commented in Github, and it is a good idea to have another developer review the changes. This encourages better quality and compliance with common guidelines, improves catching bugs early, and the team is better kept up to date on what is going on in the model.+Instead of just pushing our changes directly into main, it is usually a good idea to open pull requests instead. They could actually be called merge requests, because the idea is to merge some changes from one branch into another. A pull request can be viewed and commented in Github, and it is a good idea to have another developer review the changes. This encourages better quality and compliance with common guidelines, improves catching bugs early, and the team is better kept up to date on what is going on in the model. Creating a pull request is covered in the [video tutorial](..wiki:version_control#video_tutorial).
  
 ### Resolving conflicts ### Resolving conflicts
 +Conflicts can arise if we try to merge or rebase our changes with someone else's changes: both modified the same file and now git does not know how to combine the changes or which one to prefer. A basic example of conflict resolution is shown in the [video tutorial](..wiki:version_control#video_tutorial). Avoid simultaneous work on the same views in the model, beacause conflicts in the visual section of the model file are much harder to solve.
 +
 +### Ignoring files
 Upcoming Upcoming
 +
  
 ### When to commit and how to write a good commit message? ### When to commit and how to write a good commit message?