Git and Version Control

Git and Version Control

Git and Version Control CS-A1123 Basics in Programming Y2 (5 ECTS) Version control systems • Any software will soon branch out to multiple versions – Old distributed versions that need updates and security patches – Main stable version – Simultaneous development versions for new features • Version control software (Git, SVN, CVS, etc.) is used to manage these – A repository contains all branches and their various versions – A working copy for developers deployment release – Changes can be kept separate or merged back to the mainline version 0.9 1.0 1.0.1 1.2 V 2.0 1.1 1.1.2 1.1.1 Projects and versioning • Many versioning systems are based on the concept of project as the comprehensive unit of work • A project contains all versions of the software and additional material – Working copies may be worked on by separate developers • Implicitly creating several separate branches on the project – Branches can be created in the project itself • Often ends up with a tree like structure • Branches for deployed versions that need to be maintained • Branches for new development work to be tested and merged to the main branch • The branches are independent – Changes in one branch are not automatically deployed to others – Each branch has its own version history • A developer may take out different versions of different branches to work • Parallel development work requires software tools – Changes can conflict or be difficult to merge 3 Git and version control • Git is one popular tool available for distributed version control – Has been created especially for the Linux project, but is generic – Designed to scale especially for large distributed projects and parallel creation of complex software • Git is based on centralized storage and local copy – Works offline until one wants to update others' work or commit own • Multiplatform product – Most Unix-based OSes, MacOS, Windows – Many IDEs support git, e.g., PyCharm, Eclipse, Visual Studio, Android Studio, GNU Emacs • Other popular tools exist, too – SVN (Subversion), CVS (Concurrent Versions System) ... working copy local repository remote repository 4 Using Git • Two common starting points – create a new project (git init) – Clone an existing project to local storage (git clone) • Files in Git – Need to be added (git add), can be removed (git rm) – Status check often useful (git status) – Git directories contain two types of files, tracked files versioned by Git and untracked files Git is not aware of (e.g., locally compiled binaries) • Updating the repository – Local commit of own work for versioning (git commit) • Creates a point that can be returned to later – Shared commit to central repository (git push) – Others' changes from central repository (git pull) – Merging changes (git merge) 5 Using Git Your workstation In the net Working Staging Local Remote directory area repository repository git clone git init Getting started git add git commit -a git push Changes git fetch git checkout git pull 6 Git tällä kurssilla ja Aallossa • Gitiä käytetään tällä kurssilla projektityön palauttamiseen – Opiskelija tekee itselleen oman projektirepositorion Aallon omaan Gitiin (https://version.aalto.fi) – Opiskelija lisää assarinsa ja kurssin vastuuopettajan projektiinsa • Käytämme Gitiä myös harjoitustehtävien neuvonnassa – https://version.aalto.fi/gitlab/sos/y2-2021qa/issues – Issue tracker –toiminto on alunperin tarkoitettu esimerkiksi virheiden raportointiin – Muut projektiin (kurssille) osallistuvat näkevät aiemmat kysymykset ja niiden vastaukset kohdasta “closed” 7 Using Git on this Course and at Aalto • Git is used on this course to return the project – Create your own project repository at Aalto Git https://version.aalto.fi – Add your TA and teacher to your project We are also using Git's "Issue Tracker" feature for questions and answers on the assignments – https://version.aalto.fi/gitlab/sos/y2-2021qa/issues – Originally intended for problem reports – Used on this course, so that everybody on the course can see others' problems and their replies 8.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    8 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us