Qu'est-ce que VCS (Version Control System)

Système de contrôle de version (un portmanteau du contrôle du système la version, le VCS.) - Ce stockage de code. Comme une boîte de dépôt , pour les développeurs uniquement!





Il est spécifiquement orienté vers le développement de produits. C'est-à-dire pour stocker du code, synchroniser le travail de plusieurs personnes, créer des versions (branches) ... Mais laissez-moi vous dire mieux avec un exemple, pourquoi c'est mieux qu'une dropbox. Tout est comme toujours, une histoire avec un tas d'images pour plus de clarté))





Et puis je vous en dirai plus sur le fonctionnement de VCS - ce que signifie «créer un référentiel», «valider et fusionner les modifications», et d'autres mots effrayants. À la fin, nous toucherons l'un des systèmes VCS avec nos mains, téléchargerons le code à partir du référentiel ouvert.





Contenu total:





  • Qu'est-ce que c'est et pourquoi est-il nécessaire





  • Comment fonctionne VCS





    • Travail préparatoire





      1. Créer un référentiel





      2. Téléchargez le projet depuis le référentiel





    • Travail quotidien





      1. Mettez à jour le projet, consultez la dernière version du référentiel





      2. Valider les modifications dans le référentiel





      3. Résoudre les conflits (fusionner)





      4. Créer une branche (branche)





  • VCS populaire et les différences entre eux





  • Exemple - télécharger un projet depuis Git





    1. À travers la console





    2. Grâce à IDEA





    3. Via TortoiseGit





  • Le total





Qu'est-ce que c'est et pourquoi est-il nécessaire

, Java ( ). — , . , :





  • ;





  • — ;





  • — , , .





, . , . — . !





, . :





  • Main.java





  • GUI.java





!





, —  , ! , . (Sum.java), ( GUI.java) Main.java.





-, , ... — ! — ! . ( — Minus.java), Main.java GUI.java.





 





, , .





, . , .





— , ??





— , ! . !





:





— ? !





.  , , : Main.java GUI.java. — .





. , . , .





, , . Sum.java, .





! , . Main.java GUI.java, . , , .





( — , -):





— ?





— , , ! . , 9 . . 9 , , .





— , !





, ! . , ... .





, . , - ! , .





, . :





— !!! !





, :





— ??





. , , , . , . .





. , , . , .





— ! , ?





— , ...





:





— ! :





  • , .





  • - — «» , - .





  • , — , .





. .





:





— ... , , . !





:





— . , Dropbox, ?





. , . . . , , , .





:





— ?





— . , !





:





— , Main.java, . ... ! 100 ... .





— , , , .





— , !





. :





— ?





— , !





— ?





— ??? !





— .





— . - Main.java. :





— , .





— , , !





— , .





— ? , ...





— , ? ...





, . - . !





— , , - , ? « »?





— . . AraxisMerge, !





— , ! IDEA ( Ctrl + C ). !





— !





—  . :





— , ! , ! . , !





— ? ?





— . SVN, . ?





— !





. ! , . ? !





 





 





VCS

, .





 





1.





, . . .





SVN. , , . , «» .





, VCS . , — , .





! ! .





 





2.





. , , , , -!





, , . , . Mercurial ( VCS) — clone. , —  () , , !





, . -.





, — .





 





, .





 





1. ,





, . - ?





, , Main.java GUI.java. , . !





SVN «update», Mercurial — «pull». . , . - —  . - , .





clone? , ! ?





. , - . , . , .





, «» . , . , .





— . 5 1000, ?





 





2.





. , . , ( — , . refactor), Main.java.





() , . . —  VCS, .





 





1 — commit





— SVN.





, . «commit» — . .





 





2 — commit + push





— Mercurial, Git.





, . «commit» — . !





, «». «push».





, , . , code freeze . . , , !





. , , . =) .





 









, :





— .





:





— .





. — , !





 





3. (merge)





, — . , 3 Main.java Gui.java.





Minus.java, , .





. , . :





  • Percent.java





  • Main.java ( 3)





  • Gui.java ( 3)





:





  • Percent.java —  1





  • Main.java —  4





  • Gui.java —  4





. :





  • Division.java





  • Main.java ( 3, )





  • Gui.java ( 3)





, ! :





  • Division.java —  1





  • Main.java —  4





  • Gui.java —  4





, , ! !





, «merge». , , Main.java Gui.java , . . «» —  4 .





, ? . , . :





  • , — ,





  • , — ,









— . , , . — .





, , . , -. . , , , —  ? ?





—  , . , ant gradle, . , .





, 200 , .





? . , .





, , . , . . merge , !





 





4. ()





. , . ? :





— ? ?





— . , .





:





— , , ? !





:





— !





:





— ?





:





— —  . , trunk-, .





- , « » —  , .





—  1 .





— 2.





VCS , :





  • 1





  • 1 2 — , ,





  • , 2 .





— 3.





— , . , . (branch . — ). trunk-.





, , - . ( , . branch, trunk, )





trunk. branch, , - .





!





— , ! ? ! , 2. !





— . , « ». , . , ( ).





, , 3, . , . 30 .





, —  , . ! , :





  • 3





  • ( , )





  • =









  • 33 ()





- . ? , ? ? ?





! - , . , , , .





— . branch (trunk). , , merge, !





- — . + .





. , — 1, 2... 52...





, , , . , =) ( ):





!





— , ?





— , . , Mercurial «hg sum»: , . :





D:\vcs_project\test>hg sum

parent: 3:66a91205d385 tip

Try to fix bug with device

branch: default
      
      



«parent» — . . , ? . 3. , ID .





, . «Try to fix bug with device».





, , «branch»! default — . trunk-. , . . .





— ! !





*****





Git «», , — https://learngitbranching.js.org





*****





, —  VCS. —  , . .









( . Version Control System, VCS)  — dropbox .





 





VCS

— :





  • SVN — ,





  • Mercurial ( HG), Git — ( )





SVN — , . — . ! . , . , , .





Mercurial Git . — , push. , , , . . .





« ». , . , , , , , ... .





. . «» — Tortoise<VCS>. TortoiseSVN, TortoiseHG, TortoiseGit... — IDEA, Eclipse, etc.





? , Tortoise «-», .





:





API — , .





VCS:









SVN





GIT





HG









svn checkout <> <>





git clone <> <>





hg clone <> <>









svn update





git pull





hg pull -u 





( ?)





svn log --revision HEAD





git show -s





hg sum









svn commit -m "MESSAGE"





git commit -a -m "MESSAGE"







git push





hg commit -m "MESSAGE"







hg push





branch





svn checkout <> <>





git checkout BRANCH





hg update BRANCH





, , . , , =)





— Git

Folks. !





Git. , . 3 ( , ):









  1. IDEA





  2. TortoiseGit





D:\git.





1.





1. git:





2. :





git clone  
      
      







git clone https://bitbucket.org/testbasecode/folks/src/master/ D:\\git\\folks_console
      
      



. !





« » . .





 





2. IDEA





1. IDEA





2. Check out from Version Control → Git





3. :





  • URL — https://bitbucket.org/testbasecode/folks/src/master/ ( )





  • D:\git\folks_idea ( )





4. Clone — ! IDEA !





, !





, «Project» ( ) , :





— , ! , . .





 





3. TortoiseGit





— , «» (tortoise):





1. TortoiseGit





2. → , , : Git Clone, Git Create repository here, TortoiseGit





3. , . , D:\git.





4. → Git Clone





:





  • URL — https://bitbucket.org/testbasecode/folks/src/master/ ( )





  • Directory — D:\git\folks_tortoise_git ( )





5. «»





! - — !





3 ! , , :





 





SVN, Mercurial, Git, VCS — . , . ! =) .





. «TODO ». ,   . , , .





. , . , , . , , . .





, . , !





. , VCS , . , «» — .





, . . . VCS Tortoise Hg.





=) —  1 .





, , —  . , !





PS:   «». —   youtube-.





PPS: l'auteur des photos de cet article est Anya Chernomortseva , l'auteur du style est Victoria Lapis =)








All Articles