Jump to content
php.lv forumi

GIT vajag padomu ka infrastruktūru uzčinīt.


Recommended Posts

Sveicināti,

 

Sākšu ar to ka GIT uz servera ir uzlikts 1.7.0.4 (nezinu vec vai jauns bet tam nav nozīmes). 

Tātad sākšu ir webisks risinājums gribu to ielikt GIT'ā pēc tam izčekot lokāli priekš turpmākas izstrādes, bet izstrādājot un kommitojot izmaiņas negribu nograut stabilo versiju.

Tāpēc ir ideja izveidot branchu un tad šo branch merdžot tunkā, tādā veidā man būtu iespēja strādāt branchā un testēt ja viss ok tad iepludināt izmaiņas trunkā.

 

Domāju kaut kā tā visu organizēt vienīgais GIT'ā līdz šim neesmu strādājis, ir nācies strādāt ar TFS un SVN bet šie no GIT atšķiras tik ideja kopēja versionēšana.

 

Tātad kā man izveidot savu über alles krutāko DEV infrastruktūru?

 

 

Link to post
Share on other sites

Mēs darbā un es savos open-source projektos daram tā, ka ir "master" brenčs, kurā drīkst būt tikai testēts, code-revjūvots kods, kas ir stabils un strādā. Visa izstrāde notiek citos brenčos, kuru nosaukums sakrīt ar taska ID. Kad darbs ir pabeigts, jaunākais "master" brenčs tiek samerdžots ar "feature" brenču, nopušots; Jenkins pārbauda, vai testi iet, vai nav pasliktinājies "code coverege", vai nav atrastas kādas stila kļūdas (pep8, jshint utml.), un, vai visā visumā viss ir labi. Ja jā, tad tas viss tiek iemerdžots atpakaļ iekš "master" brenča ar "squash" flegu un komitu-mesedžu, kas norāda taska ID un nosaukumu.

 

Re kur vienkāršots piemērs: https://github.com/daGrevis/daGrevis.lv/commits/master .

Link to post
Share on other sites

Ideja man ir skaidra tagad jāmēģina realizēt.

1. Man ir gatavs projekts iesākumā es tajā sataisīšu Git repozitoriju, to tā kā es mācētu.

2. Nākamais kas laikam sekotu no šī "master" benča uztaisīt kādu citu brenču kurā tad es taisītu jaunas fīčas un testēšu.

 

 

jaunākais "master" brenčs tiek samerdžots ar "feature" brenču, nopušots

šo momentu es īsti nesapratu :(

 

Kas ir "squash" flags?

 

ID man nebūs jo pagaidām esmu viens, un viss šis tikai mana ērtuma labad. :)

Link to post
Share on other sites
~~~

~/Test  » mkdir foo

~/Test  » cd foo

Test/foo  » git init

Initialized empty Git repository in /home/dagrevis/Test/foo/.git/

Test/foo - [master] » touch a

Test/foo - [master●] » git add .

Test/foo - [master●] » git commit -m "added a"

[master (root-commit) b579e0c] added a

1 file changed, 0 insertions(+), 0 deletions(-)

create mode 100644 a

Test/foo - [master] » git checkout -b feature

Switched to a new branch 'feature'

Test/foo - [feature] » touch b

Test/foo - [feature●] » git add .

Test/foo - [feature●] » git commit -m "added b"

[feature 53688ad] added b

1 file changed, 0 insertions(+), 0 deletions(-)

create mode 100644 b

Test/foo - [feature] » touch c

Test/foo - [feature●] » git add .

Test/foo - [feature●] » git commit -m "added c"

[feature bf25045] added c

1 file changed, 0 insertions(+), 0 deletions(-)

create mode 100644 c

Test/foo - [feature] » git merge master # merge master in feature branch

Already up-to-date.

Test/foo - [feature] » git checkout master

Switched to branch 'master'

Test/foo - [master] » git merge --squash feature # merge feature in master branch w/ squash

Updating b579e0c..bf25045

Fast-forward

Squash commit -- not updating HEAD

b | 0

c | 0

2 files changed, 0 insertions(+), 0 deletions(-)

create mode 100644 b

create mode 100644 c

Test/foo - [master●] » git commit -m "added feature (squash all commits in feature branch into one commit in master branch)"

[master e3c7e16] added feature (squash all commits in feature branch into one commit in master branch)

2 files changed, 0 insertions(+), 0 deletions(-)

create mode 100644 b

create mode 100644 c

Test/foo - [master] » git log --oneline

e3c7e16 added feature (squash all commits in feature branch into one commit in master branch)

b579e0c added a

~~~
Link to post
Share on other sites

Neieteiktu izmantot kkādas abstrakcijas, kamēr neesi vismaz daļēji sapratis kas ir apakšā.

 

> Tā arī līdz galam vēl neesmu sapratis kā tas Git strādā :(

 

Internetā ir kaude ar labu, vienkāršu literatūru. _Google it!_

Link to post
Share on other sites

Literatūra ir pārlasīta vairākkārt. 

Pa lielam nav vajag tik skaidrībā ka sataisīt tā kā es esmu iedomājies. Kas gan tur var būt sarežģīts reku mans scenārijs kā vēlos strādāt: 

1. Ir sagatavots Git repozitorijs un servera 

2. Izveidoju master brenču 

3. Izveidoju development brenču 

4. Sataisu colne abiem brenčiem atsevišķās mapēs uz sava izstrādes datora.

5. Sataisu switč uz development brenču, uz tās mapes kurā ir izkolēnēts development breņč

6. Veicu kaut kādas izmaiņas - > commit -> push uz serveri 

7. Pārsvičojos uz master brenču, uz tās mapes kurā ir izklonēts master brenč. 

8. git merge master development (gribu development izmaiņas ielikt master brenčā)

9. pull master no servera

10. un tagad vai nu nostrādā vai nu nenostrādā, šo momentu vēl nēesmu sapratis. Vienu reizi itkā strādā ka man vajag. Tad sataisu jaunu repozitoriju daru itkā visu kā līdz šim bet izmaiņas ir visu laiku no pirmā commita un viss.

 

Māsterā nekādas izmaiņas pēc idejas es neveidošu likšu tās no development breņča un šo es neesmu izkodis arī pēc 1L nesapratu un gāju gulēt.

Link to post
Share on other sites

Nekas nav jaaklonee nekaadaas atsevishkjaas mapees.

 

Mees kompaanijaa izmantojam GitHub flow (ne gitflow ko nemec iesaka - lai gan to izmantojaam ieprieksh) ar nelielaam izmainjaam.

 

git clone git@... mape // izveido lokaalo repozitoriju

git checkout -b feature-branch master // izveido jaunu branch'u (shos suutam arii uz centraalo repozitoriju, bet saakumaa paspeeleejies bez taa)

// veic izmainjas

git add -A // sastage'o visas izmainjas

git commit -m "Veicu izmainjas" // uztaisa commit'u

git checkout master // paarsleedzas uz master branch'u

git merge --no-ff feature-branch // iemergo feature-branch atpakalj master branch'aa (un saglabaa veesturee, ka tas bija feature-branch)

git branch -d feature-branch // izdzeesh feature-branch

git push master origin // suuta jaunos commit'us uz centraalo repozitoriju

 

Serveris ir uz tikai uz master branch'a un lielaakoties pietiek ar git pull

Link to post
Share on other sites

Manas idejas pamatā jau ir redzēt to kas darās pa abiem brenčiem. Un es nezinu vai gribu uz katru labojumu ņemt brenču un pēc izmaiņu ielikšanas māsterī to dzēst. Gribu divus brenčus, kur vienā ir pārbaudīts kods, bet otrā notiek izstrāde un kā arī gribu brenča saturu redzēt lokāli uz sava datora. 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...