Version Control System (portmanteau dari Control the System the Version, VCS.) - Penyimpanan kode ini. Seperti dropbox , khusus untuk pengembang!
Ini diarahkan secara khusus untuk pengembangan produk. Yaitu, untuk menyimpan kode, menyinkronkan pekerjaan beberapa orang, membuat rilis (cabang) ... Tapi izinkan saya memberi tahu Anda lebih baik dengan sebuah contoh, mengapa itu lebih baik daripada dropbox. Semuanya seperti biasa, cerita dengan banyak gambar untuk kejelasan))
Dan kemudian saya akan memberi tahu Anda lebih banyak tentang cara kerja VCS - apa artinya "membuat repositori", "melakukan dan menggabungkan perubahan", dan kata-kata menakutkan lainnya. Pada akhirnya, kami akan menyentuh salah satu sistem VCS dengan tangan kami, mengunduh kode dari repositori terbuka.
Konten total:
Apa itu dan mengapa itu dibutuhkan
-
VCS populer dan perbedaan di antara mereka
Contoh - mengunduh proyek dari Git
-
Apa itu dan mengapa itu dibutuhkan
, 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: penulis gambar artikel ini adalah Anya Chernomortseva , penulis gayanya adalah Victoria Lapis =)