Sistema de control de versiones (un acrónimo de Control the System the Version, el VCS) : este almacenamiento de código. Como un dropbox , ¡solo para desarrolladores!
Está orientado especĂficamente al desarrollo de productos. Es decir, para almacenar cĂłdigo, sincronizar el trabajo de varias personas, crear lanzamientos (ramas) ... Pero dĂ©jame decirte mejor con un ejemplo, por quĂ© es mejor que un dropbox. Todo es como siempre, una historia con un montĂłn de imágenes para mayor claridad))
Y luego te contaré más sobre cómo funciona VCS: lo que significa "crear un repositorio", "confirmar y fusionar cambios" y otras palabras aterradoras. Al final, tocaremos uno de los sistemas VCS con nuestras manos, descargaremos el código del repositorio abierto.
Contenido total:
¿Qué es y por qué se necesita?
-
VCS popular y las diferencias entre ellos
Ejemplo: descargar un proyecto de Git
-
¿Qué es y por qué se necesita?
, 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: la autora de las imágenes de este artĂculo es Anya Chernomortseva , la autora del estilo es Victoria Lapis =)