Versionskontrollsystem (ein Portmanteau des Control the System der Version, des VCS.) - Dieser Codespeicher. Wie eine Dropbox nur fĂĽr Entwickler!
Es ist speziell auf die Produktentwicklung ausgerichtet. Das heißt, zum Speichern von Code, zum Synchronisieren der Arbeit mehrerer Personen, zum Erstellen von Releases (Zweigen) ... Aber lassen Sie mich anhand eines Beispiels besser erklären, warum es besser ist als eine Dropbox. Alles ist wie immer eine Geschichte mit ein paar Bildern zur Klarheit))
Und dann erzähle ich Ihnen mehr über die Funktionsweise von VCS - was es bedeutet, "ein Repository zu erstellen", "Änderungen festzuschreiben und zusammenzuführen" und andere beängstigende Worte. Am Ende werden wir eines der VCS-Systeme mit unseren Händen berühren und den Code aus dem offenen Repository herunterladen.
Gesamtinhalt:
Was ist das und warum wird es gebraucht?
-
-
Beliebte VCS und die Unterschiede zwischen ihnen
Beispiel - Herunterladen eines Projekts von Git
-
Was ist das und warum wird es gebraucht?
, 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: Die Autorin der Bilder dieses Artikels ist Anya Chernomortseva , die Autorin des Stils ist Victoria Lapis =)