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
-
VCS populaire et les différences entre eux
Exemple - télécharger un projet depuis Git
-
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"
|
hg commit -m "MESSAGE"
|
branch |
svn checkout <> <> |
git checkout BRANCH |
hg update BRANCH |
, , . , , =)
— Git
Folks. !
Git. , . 3 ( , ):
IDEA
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 .
, , — . , !
PPS: l'auteur des photos de cet article est Anya Chernomortseva , l'auteur du style est Victoria Lapis =)