translate push & pull

This commit is contained in:
Crudu Cristian 2025-06-09 13:12:12 +03:00
parent 7bca47b200
commit f069fd22c9
10 changed files with 550 additions and 2 deletions

View file

@ -1059,7 +1059,7 @@ exports.strings = {
'es_ES': 'Remota',
'fr_FR': 'Remote',
'gl' : 'Remota',
'ro': "Ramuri de la distanță",
'ro': "Ramuri Remote",
'ru_RU': 'Удаленные репозитории',
'uk' : 'Віддалені репозиторії',
'ko' : '원격',

View file

@ -163,7 +163,7 @@ var sequenceInfo = exports.sequenceInfo = {
'gl' : 'Push & Pull -- Repositorios remotos no Git!',
'zh_CN': 'Push & Pull —— Git 远程仓库!',
'zh_TW': 'Push & Pull -- Git Remotes!',
'ro': "Push & Pull -- repozitorii Git de la distanță (Remotes)!",
'ro': "Push & Pull -- Git Remotes!",
'ru_RU': 'Push & Pull - удалённые репозитории в Git!',
'uk' : 'Push & Pull -- віддалені репозиторії в Git!',
'ko' : 'Push & Pull -- Git 원격 저장소!',

View file

@ -13,6 +13,7 @@ exports.level = {
"gl": "Introducción a clone",
"zh_CN": "Git Clone",
"zh_TW": "介紹 clone",
"ro":"Introducere în clonare",
"ru_RU": "Введение в клонирование",
"ko": "Clone 소개",
"uk": "Знайомство з clone",
@ -34,6 +35,7 @@ exports.level = {
"pt_BR": "Basta fazer um git clone!",
"gl": "¡Chega con facer git clone!",
"zh_TW": "只要 git clone 就好了",
"ro": "Doar git clone!",
"ru_RU": "Простой git clone!",
"ko": "그냥 git clone 하세요!",
"uk": "Просто git clone!",
@ -671,6 +673,63 @@ exports.level = {
}
]
},
"ro": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Git Remotes",
"",
"Repozitoriile remote nu sunt chiar atât de complicate. In lumea de astazi a cloud-ului, e ușor să crezi ca exista multă magie in spatele remote-urilor git, dar ele sunt de fapt doar copii ale repozitoriului tău pe un alt calculator. De obicei poți comunica cu acest alt calculator prin intermediul internetului, ceea ce iți permite să transferi commit-uri in ambele sensuri.",
"",
"Asta fiind spus, repo-urile remote au o serie de proprietăți interesante:",
"",
"- In primul rand, remote-urile sunt un backup excelent! Repositoriile git locale au capacitatea de a restaura fișiere la o stare anterioară (așa cum știi), dar toate informațiile sunt stocate local. Având copii ale repositoriului tău git pe alte calculatoare, poți pierde toate datele locale și totuși să continui de unde ai rămas.",
"",
"- Mai important, remote-urile fac ca programarea să fie socială! Acum că o copie a proiectului tău este găzduită în altă parte, prietenii tăi pot contribui cu ușurință la proiectul tău (sau pot obține ultimele tale modificări).",
"",
"A devenit foarte popular să folosești site-uri care vizualizează activitatea din jurul repo-urilor remote (cum ar fi [GitHub](https://github.com/)), dar repo-urile remote _întotdeauna_ servesc ca baza pentru aceste instrumente. Așa că este important să le înțelegi!"
]
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Comanda noastră pentru a crea remote-uri",
"",
"Până acum, Learn Git Branching s-a concentrat pe învățarea elementelor de bază ale lucrului cu repo-uri _locale_ (branching, merging, rebasing etc). Cu toate acestea, acum că vrem să învățăm despre lucrul cu repo-uri remote, avem nevoie de o comandă pentru a configura mediul pentru aceste lecții. Această comandă va fi `git clone`.",
"",
"Tehnic vorbind, `git clone` în lumea reală este comanda pe care o folosești pentru a crea copii _locale_ ale repo-urilor remote (de pe GitHub, de exemplu). Folosim această comandă puțin diferit în `Learn Git Branching` -- aici `git clone` va crea un repo remote din cel local. Sigur că este opusul tehnic al comenzii reale, dar ajută la construirea conexiunii între clonare și lucrul cu repo-uri remote, așa că hai să mergem în modul acesta în continuare.",
""
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Să începem încet și să vedem cum arată un repo remote în vizualizarea noastră.",
""
],
"afterMarkdowns": [
"Iată-l! Acum avem un repo remote al proiectului nostru. Arată foarte asemănător, cu câteva diferențe vizuale pentru a face distincția clară -- în nivelurile următoare vei vedea cum împărtășim munca între aceste repo-uri."
],
"command": "git clone",
"beforeCommand": ""
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Pentru a finaliza acest nivel, pur și simplu execută `git clone` pe repo-ul tău existent. Învățarea adevărată va veni în lecțiile următoare."
]
}
}
]
},
"ru_RU": {
"childViews": [
{

View file

@ -14,6 +14,7 @@ exports.level = {
"gl": "Simulando o traballo no repositorio",
"zh_CN": "模拟团队合作",
"zh_TW": "模擬團隊合作",
"ro": "Simularea colaborării în echipă",
"ru_RU": "Коллективная работа",
"uk": "Симуляція колективної роботи",
"ko": "가짜 팀워크",
@ -35,6 +36,7 @@ exports.level = {
"gl": "Lembra que podes especifar cantos commits queres simular",
"zh_CN": "记住你可以指定仿真提交的个数",
"zh_TW": "你要記得指定要送多少個 commit 出去",
"ro": "Amintește-ți că poți specifica numărul de commit-uri simulate",
"ru_RU": "помните, Вы можете указать количество фейковых коммитов",
"uk": "пам’ятай що ти можеш вказати кількість фейкових комітів",
"ko": "가장할 커밋의 갯수를 조절할 수 있습니다.",
@ -585,6 +587,60 @@ exports.level = {
}
]
},
"ro": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Simularea colaborării",
"",
"Aici este partea complicată -- pentru unele dintre lecțiile următoare, trebuie să învățăm cum să preluăm (tragem) modificările introduse în remote.",
"",
"Asta înseamnă că trebuie să \"pretindem\" că remote-ul a fost actualizat de unul dintre colegii / prietenii / colaboratorii tăi, uneori pe o anumită ramură sau cu un anumit număr de commit-uri.",
"",
"Pentru a face asta, am introdus comanda cu numele potrivit `git fakeTeamwork`! Este destul de explicită, să vedem o demonstrație..."
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Comportamentul implicit al comenzii `fakeTeamwork` este să adauge un commit pe ramura main."
],
"afterMarkdowns": [
"Iată-ne -- remote-ul a fost actualizat cu un nou commit, iar noi nu am descărcat încă acel commit pentru că nu am rulat `git fetch`."
],
"command": "git fakeTeamwork",
"beforeCommand": "git clone"
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"De asemenea, poți specifica numărul de commit-uri sau ramura adăugându-le la comandă."
],
"afterMarkdowns": [
"Cu o singură comandă am simulat că un coleg a partajat trei commit-uri pe ramura `foo` a remote-ului nostru."
],
"command": "git fakeTeamwork foo 3",
"beforeCommand": "git branch foo; git clone"
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Următoarele niveluri vor fi destul de dificile, așa că cerem mai multe de la tine în acest nivel.",
"",
"Astfel, încearcă să creezi un remote (cu `git clone`), să simulezi câteva modificări pe acel remote, să faci un commit local și apoi să descarci modificările de la remote și să le îmbini local la tine. Este ca și cum ar fi câteva lecții într-una singură!"
]
}
}
]
},
"ru_RU": {
"childViews": [
{

View file

@ -14,6 +14,7 @@ exports.level = {
"gl": "Git Fetch",
"zh_CN": "Git Fetch",
"zh_TW": "git fetch",
"ro": "Git Fetch",
"ru_RU": "Git fetch",
"uk": "Git fetch",
"ko": "Git Fetch",
@ -36,6 +37,7 @@ exports.level = {
"gl": "¡Sinxelamente fai git fetch!",
"zh_CN": "只需要运行 git fetch 命令!",
"zh_TW": "只要下 git fetch 指令",
"ro": "Doar rulează git fetch!",
"ru_RU": "Просто выполните git fetch!",
"uk": "Просто виконай git fetch!",
"ko": "그냥 git fetch를 하세요!",
@ -850,6 +852,79 @@ exports.level = {
}
]
},
"ro": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Git Fetch",
"",
"Lucrul cu remote-uri în Git se reduce la transferul de date _către_ și _de la_ alte repozitorii. Atâta timp cât putem trimite commit-uri în ambele direcții, putem împărtăși orice tip de actualizare care este urmărită de Git (și astfel putem împărtăși muncă, fișiere noi, idei noi, scrisori de dragoste etc.).",
"",
"În această lecție vom învăța cum să preluăm date _de la_ un repozitoriu remote -- comanda pentru asta se numește `git fetch`.",
"",
"Veți observa că, pe măsură ce actualizăm reprezentarea noastră a repozitorului remote, ramurile noastre _remote_ se vor actualiza pentru a reflecta această nouă reprezentare. Acest lucru este legat de lecția anterioară despre ramurile remote."
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Înainte de a intra în detalii despre comanda `git fetch`, să o vedem în acțiune! Aici avem un repozitoriu remote care conține două commit-uri pe care repozitorul nostru local nu le are."
],
"afterMarkdowns": [
"Perfect! Commit-urile `C2` și `C3` au fost descărcate în repozitorul nostru local, iar ramura noastră remote `o/main` a fost actualizată pentru a reflecta acest lucru."
],
"command": "git fetch",
"beforeCommand": "git clone; git fakeTeamwork 2"
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"### Ce face fetch",
"",
"`git fetch` efectuează doi pași principali, și doar acești doi pași principali. Anume:",
"",
"* descarcă commit-urile pe care remote-ul le are, dar lipsesc din repozitorul nostru local, și...",
"* actualizează unde indică ramurile noastre remote (de exemplu, `o/main`)",
"",
"`git fetch` sincronizează practic reprezentarea noastră _locală_ a repozitorului remote cu ceea ce este _de fapt_ repozitorul remote (în acest moment).",
"",
"Dacă îți amintești din lecția anterioară, am spus că ramurile remote reflectă starea repozitoriilor remote _de la ultima dată_ când ai vorbit cu aceste repozitorii. `git fetch` este modul în care vorbești cu aceste remote-uri! Sper că acum conexiunea dintre ramurile remote și `git fetch` este clară.",
"",
"`git fetch` comunică de obicei cu repozitoriul remote prin intermediul internetului (printr-un protocol precum `http://` sau `git://`).",
""
]
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"### Ce nu face fetch",
"",
"`git fetch`, totuși, nu schimbă nimic în starea _locală_ a repozitoriului tău. Nu va actualiza ramura ta `main` și nu va schimba nimic în modul în care arată fișierele tale acum.",
"",
"Este important să înțelegi asta, deoarece mulți dezvoltatori cred că rularea `git fetch` va face ca munca lor locală să reflecte starea remote-ului. Acesta poate descărca toate datele necesare pentru a face asta, dar nu _modifică_ niciunul dintre fișierele tale locale. Vom învăța comenzi pentru a face acest lucru în lecțiile următoare :D",
"",
"Deci, la sfârșitul zilei, te poți gândi la `git fetch` ca la un pas de descărcare."
]
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Pentru a termina acest nivel, pur și simplu rulează `git fetch` și descarcă toate commit-urile!"
]
}
}
]
},
"ru_RU": {
"childViews": [
{

View file

@ -13,6 +13,7 @@ exports.level = {
"de_DE": "Abweichende Historie",
"fr_FR": "Historique divergent",
"ja": "履歴の分岐",
"ro": "Istorie divergentă",
"ru_RU": "Расхождение в истории",
"uk": "Розбіжності в історії",
"ko": "엇갈린 히스토리",
@ -33,6 +34,7 @@ exports.level = {
"de_DE": "Beachte die Reihenfolge in der Zieldarstellung",
"ja": "ゴールのツリーの順番を参考にすること",
"fr_FR": "Regardez l'ordre dans la fenêtre de visualisation d'objectif",
"ro": "Verifică ordinea din vizualizarea obiectivului",
"ru_RU": "проверьте сортировку в визуализации цели",
"uk": "перевірте порядок в візуалізації цілі",
"ko": "순서는 goal을 참고하세요",
@ -1330,6 +1332,149 @@ exports.level = {
}
]
},
"ro": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Lucru Divergent",
"",
"Până acum am văzut cum să facem `pull`la commit-uri de la alții și cum să facem `push` modificărilor noastre. Pare destul de simplu, așa că de ce se confundă oamenii?",
"",
"Dificultatea apare atunci când istoria repozitoriului *diverge*. Înainte de a discuta detaliile, să vedem un exemplu...",
""
]
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Imaginează-ți că clonezi un repozitoriu luni și începi să lucrezi la o funcționalitate. Până vineri ești gata să publici funcționalitatea ta -- dar oh nu! Colegii tăi au scris o grămadă de cod în timpul săptămânii care a făcut ca funcționalitatea ta să fie învechită. Ei au publicat aceste commit-uri în repozitoriul remote, așa că *munca ta* este acum bazată pe o versiune *veche* a proiectului care nu mai este relevantă.",
"",
"În acest caz, comanda `git push` este ambiguă. Dacă rulezi `git push`, ar trebui git să schimbe repozitoriul remote înapoi la starea de luni? Ar trebui să încerce să adauge codul tău fără a elimina noul cod? Sau ar trebui să ignore complet modificările tale deoarece sunt complet învechite?",
"",
"Fiindcă există atât de multă ambiguitate în această situație (unde istoria diverge), git nu îți permite să faci `push` modificărilor tale. De fapt, te forțează să integrezi starea cea mai recentă a remote-ului înainte de a putea împărtăși munca ta."
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Atâtea vorbe! Să vedem asta în acțiune."
],
"afterMarkdowns": [
"Vezi? Nu s-a întâmplat nimic pentru că comanda a eșuat. `git push` eșuează deoarece ultimul tău commit `C3` este bazat pe remote-ul de la `C1`. Între timp, remote-ul a fost actualizat la `C2`, așa că git respinge push-ul tău."
],
"command": "git push",
"beforeCommand": "git clone; git fakeTeamwork; git commit"
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Cum rezolvi această situație? E simplu, tot ce trebuie să faci este să îți bazezi munca pe cea mai recentă versiune a ramurii remote.",
"",
"Există câteva moduri de a face asta, dar cel mai direct este să îți muți munca prin rebase. Să vedem cum arată asta."
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Acum dacă facem rebase înainte de a face push..."
],
"afterMarkdowns": [
"Boom! Am actualizat reprezentarea locală a remote-ului cu `git fetch`, am făcut rebase muncii noastre pentru a reflecta noile modificări din remote și apoi le-am partajat cu `git push`."
],
"command": "git fetch; git rebase o/main; git push",
"beforeCommand": "git clone; git fakeTeamwork; git commit"
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Există alte moduri de a actualiza munca mea atunci când repozitoriul remote a fost actualizat? Desigur! Să vedem același lucru, dar cu `merge`.",
"",
"Deși `git merge` nu mută munca ta (ci creează un commit de merge), este o modalitate de a spune git că ai integrat toate modificările din remote. Acest lucru se datorează faptului că ramura remote este acum un *strămoș* al ramurii tale, ceea ce înseamnă că commit-ul tău reflectă toate commit-urile din ramura remote.",
"",
"Să vedem asta în acțiune..."
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Și acum dacă în loc de rebase facem merge..."
],
"afterMarkdowns": [
"Boom! Am actualizat reprezentarea locală a remote-ului cu `git fetch`, *am îmbinat* noile modificări în munca noastră (pentru a reflecta noile modificări din remote) și apoi le-am împins cu `git push`."
],
"command": "git fetch; git merge o/main; git push",
"beforeCommand": "git clone; git fakeTeamwork; git commit"
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Minunat! Există vreo modalitate de a face asta fără să tastez atât de multe comenzi?",
"",
"Desigur -- deja știi că `git pull` este doar o scurtătură pentru un fetch și un merge. Din fericire, `git pull --rebase` este o scurtătură pentru un fetch și un rebase!",
"",
"Să vedem aceste comenzi scurtate în acțiune."
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Prima dată cu `--rebase`..."
],
"afterMarkdowns": [
"Exact ca înainte! Doar că mult mai scurt."
],
"command": "git pull --rebase; git push",
"beforeCommand": "git clone; git fakeTeamwork; git commit"
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Și acum cu `pull` obișnuit"
],
"afterMarkdowns": [
"Din nou, exact ca înainte!"
],
"command": "git pull; git push",
"beforeCommand": "git clone; git fakeTeamwork; git commit"
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Această secvență de `fetch`, `rebase`/`merge` și `push` este foarte comună. În lecțiile viitoare vom explora variante mai complicate ale acestui flux de lucru, dar pentru acum hai să încercăm asta.",
"",
"Pentru a rezolva acest nivel, urmează acești pași:",
"",
"* Clonează repozitoriul tău",
"* Simulează o muncă a cuiva din echipă (1 commit)",
"* Crează un commit cu munca ta (1 commit)",
"* Publică munca ta prin *rebase*"
]
}
}
]
},
"ru_RU": {
"childViews": [
{

View file

@ -5,6 +5,7 @@ exports.level = {
"hint": {
"en_US": "Make the feature branch from the local main before resetting it back to be the same as origin's main",
"de_DE": "Erstelle einen Feature-Branch ausgehend vom lokalen Main-Branch, bevor du den Main-Branch auf den origin/main zurücksetzt.",
"ro":"Creează o ramură feature din main-ul local înainte de a reseta main-ul pentru a fi la fel cu origin/main.",
"ru_RU": "Создайте новую feature ветвь от main перед тем, как откатить изменения в main до состояния o/main.",
"uk": "Створіть нову feature гілку від локального main перед тим, як відкотити зміни в main до стану o/main.",
"zh_CN": "从本地的main创建一个feature分支, 然后重置main和origin main保持一致。",
@ -24,6 +25,7 @@ exports.level = {
"name": {
"en_US": "Locked Main",
"de_DE": "Gesperrter Main-Branch",
"ro": "Main Blocat",
"ru_RU": "Заблокированная ветвь main",
"uk": "Заблокована гілка main",
"zh_CN": "锁定的Main(Locked Main)",
@ -161,6 +163,46 @@ exports.level = {
}
]
},
"ro": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Remote Respins!",
"",
"Dacă lucrezi într-o echipă mare, este probabil ca ramura `main` să fie blocată și să necesite un proces de Pull Request (Cerere pentru a partaja schimbări) pentru a îmbina modificările. Dacă faci commit direct pe `main` local și încerci să faci push, vei primi un mesaj similar cu acesta:",
"",
"```",
" ! [remote rejected] main -> main (TF402455: Pushes to this branch are not permitted; you must use a pull request to update this branch.)",
"```"
]
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## De ce a fost respins?",
"",
"Ramura remote a respins push-ul commit-urilor direct pe `main` din cauza politicii de pe `main` care necesită utilizarea Pull Request-urilor.",
"",
"Tu ai intenționat să urmezi procesul de creare a unei ramuri, apoi să faci push acelei ramuri și să faci un Pull Request, dar ai uitat și ai făcut commit direct pe `main`. Acum ești blocat și nu poți face push cu modificările tale."
]
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Soluția",
"",
"Creează o altă ramură numită `feature` și împinge-o către remote. De asemenea, resetează ramura ta `main` pentru a fi sincronizată cu remote, altfel s-ar putea să ai probleme data viitoare când faci pull și commit-ul altcuiva intră în conflict cu al tău.",
]
}
}
]
},
"ru_RU": {
"childViews": [
{

View file

@ -13,6 +13,7 @@ exports.level = {
"de_DE": "Git Pull",
"ja": "Git Pull",
"fr_FR": "Git pull",
"ro": "Git pull",
"ru_RU": "Git pull",
"uk": "Git pull",
"ko": "Git pull",
@ -33,6 +34,7 @@ exports.level = {
"de_DE": "Führe einfach git pull aus.",
"ja": "単にgit pullを実行",
"fr_FR": "Utilisez facilement git pull !",
"ro": "Pur și simplu rulează git pull!",
"ru_RU": "Запустите комманду git pull !",
"uk": "Просто виконай git pull !",
"ko": "그냥 git pull을 하세요!",
@ -574,6 +576,65 @@ exports.level = {
}
]
},
"ro": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Git Pull",
"",
"Acum că am văzut cum să preluăm datele de la un repozitoriu remote cu `git fetch`, hai să actualizăm munca noastră pentru a reflecta acele schimbări!",
"",
"Există, de fapt, multe moduri de a face asta -- odată ce ai noi commit-uri disponibile local, le poți integra ca și cum ar fi commit-uri normale pe alte ramuri. Asta înseamnă că poți executa comenzi precum:",
"",
"* `git cherry-pick o/main`",
"* `git rebase o/main`",
"* `git merge o/main`",
"* etc., etc.",
"",
"De fapt, fluxul de lucru de *preluare* a schimbărilor remote și apoi *combinarea* lor este atât de comun încât git oferă o comandă care face ambele lucruri deodată! Acea comandă este `git pull`."
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Să vedem mai întâi un `fetch` și un `merge` executate secvențial."
],
"afterMarkdowns": [
"Boom -- am descărcat `C3` cu un `fetch` și apoi am combinat acea muncă cu `git merge o/main`. Acum ramura noastră `main` reflectă noua muncă de la remote (în acest caz, numit `origin`)"
],
"command": "git fetch; git merge o/main",
"beforeCommand": "git clone; git commit; git fakeTeamwork"
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Ce s-ar întâmpla dacă am folosi `git pull` în schimb?"
],
"afterMarkdowns": [
"Exact același lucru! Asta ar trebui să facă foarte clar faptul că `git pull` este practic o scurtătură pentru un `git fetch` urmat de un merge al oricărei ramuri care a fost tocmai preluată."
],
"command": "git pull",
"beforeCommand": "git clone; git commit; git fakeTeamwork"
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Vom explora detaliile lui `git pull` mai târziu (inclusiv opțiuni și argumente), dar pentru acum hai să testăm comanda în acest nivel.",
"",
"Ține minte -- poți rezolva acest nivel folosind doar `fetch` și `merge`, dar asta te va costa o comandă suplimentară :P"
]
}
}
]
},
"ru_RU": {
"childViews": [
{

View file

@ -16,6 +16,7 @@ exports.level = {
"de_DE": "Git Push",
"ja": "Git Push",
"fr_FR": "Git push",
"ro": "Git Push",
"ru_RU": "Git push",
"uk": "Git push",
"ko": "Git push",
@ -35,6 +36,7 @@ exports.level = {
"de_DE": "Denk dran, dass du einen Clone brauchst bevor du Pushen kannst!",
"ja": "Pushができるようになるには、まずリポジトリをcloneする必要があるのをお忘れなく",
"fr_FR": "Rappelez-vous que vous devez cloner avant de pouvoir faire un push !",
"ro":"Amintiți-vă că trebuie să clonați înainte de a putea face push!",
"ru_RU": "Помните, что прежде чем push-ить вам нужно склонировать репозиторий!",
"uk": "Пам’ятай, що перед тим як щось push-нути потрібно склонувати репозиторій!",
"ko": "push를 하기전에 clone을 먼저해야 된다는것을 기억하세요!",
@ -425,6 +427,49 @@ exports.level = {
}
]
},
"ro": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Git Push",
"",
"Ok, deci am adus modificările de la remote și le-am integrat în munca mea locală. E grozav și așa... dar cum îmi pot împărtăși _eu_ munca mea minunată cu toată lumea?",
"",
"Bine, modul de a încărca partaja este opusul descărcării. Și care este opusul lui `git pull`? `git push`!",
"",
"`git push` este responsabil pentru încărcarea _modificărilor tale_ către un remote specificat și actualizarea acelui remote pentru a integra noile tale commit-uri. Odată ce `git push` se finalizează, toți prietenii tăi pot descărca munca ta de pe remote.",
"",
"Te poți gândi la `git push` ca la o comandă pentru a \"publica\" munca ta. Are câteva subtilități cu care vom lucra în curând, dar să începem cu pași mici...",
"",
"*notă -- comportamentul lui `git push` fără argumente variază în funcție de o setare git numită `push.default`. Valoarea implicită pentru această setare depinde de versiunea de git pe care o folosești, dar vom folosi valoarea `upstream` în lecțiile noastre. Nu este o problemă mare, dar merită să verifici setările înainte de a face push în proiectele tale.*"
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Aici avem câteva modificări pe care remote-ul nu le are. Să le încărcăm!"
],
"afterMarkdowns": [
"Remote-ul a primit commit-ul `C2`, ramura `main` de pe remote a fost actualizată pentru a indica către `C2`, iar propria noastră reflecție a remote-ului (`o/main`) a fost de asemenea actualizată. Totul este sincronizat!"
],
"command": "git push",
"beforeCommand": "git clone; git commit"
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Pentru a termina acest nivel, pur și simplu împărtășește două noi commit-uri cu remote-ul. Pregătește-te, pentru că aceste lecții vor deveni mult mai dificile!"
]
}
}
]
},
"ru_RU": {
"childViews": [
{

View file

@ -14,6 +14,7 @@ exports.level = {
"de_DE": "Branches auf entfernten Servern",
"ja": "リモートのブランチ",
"fr_FR": "Les branches distantes",
"ro": "Ramuri la distanță (Remote)",
"ru_RU": "Удалённые ветки",
"ko": "원격 브랜치(remote branch)",
"uk": "Віддалені гілки",
@ -35,6 +36,7 @@ exports.level = {
"de_DE": "Beachte die Sortierung -- committe zuerst auf dem main!",
"ja": "順番に注意 -- まずmainに対してcommitしましょう",
"fr_FR": "Prêtez attention à l'ordre -- les commits sur main d'abord !",
"ro": "Atenție la ordinea commit-urilor -- primul pe main!",
"ru_RU": "Уделяйте внимание очерёдности -- сперва commit на main",
"ko": "순서에 주의하세요: main 브랜치 에서 먼저 커밋하세요!",
"uk": "Звертайте увагу на послідовність -- спочатку коміт в мастер!",
@ -720,6 +722,69 @@ exports.level = {
}
]
},
"ro": {
"childViews": [
{
"type": "ModalAlert",
"options": {
"markdowns": [
"## Ramuri Remote ",
"",
"Acum că ai văzut `git clone` în acțiune, să ne uităm mai atent la ceea ce s-a schimbat defapt.",
"",
"Primul lucru pe care l-ai observat este că a apărut o nouă ramură în repozitoriul nostru local numită `o/main`. Acest tip de ramură se numește ramură _remote_; ramurile remote au proprietăți speciale deoarece servesc un scop unic.",
"",
"Ramurile remote reflectă _starea_ repozitoriilor remote (de la ultima dată când ai vorbit cu aceste repozitorii remote). Ele te ajută să înțelegi diferența dintre munca ta locală și munca care este deja publicată - un pas critic de făcut înainte de a împărtăși munca ta cu alții.",
"",
"Ramurile remote au proprietatea specială că atunci când treci pe ele, ești pus în modul detached `HEAD` (HEAD detașat). Git face asta intenționat pentru că nu poți lucra direct pe aceste ramuri; trebuie să lucrezi în altă parte și apoi să împărtășești munca ta cu remote (după care ramurile tale remote vor fi actualizate).",
"",
"Pentru a fi clar: Ramurile remote sunt în repozitoriul tău _local_, nu în repozitoriul remote."
]
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"### Ce este `o/`?",
"",
"Te-ai putea întreba ce înseamnă `o/` la începutul ramurilor remote. Ei bine, ramurile remote au și ele o convenție de denumire obligatorie -- sunt afișate în următorul format:",
"",
"* `<nume remote>/<nume ramură>`",
"",
"Deci, dacă te uiți la o ramură numită `o/main`, numele ramurii este `main`, iar numele remote-ului este `o`.",
"",
"Majoritatea dezvoltatorilor își numesc remote-ul principal `origin`, nu `o`. Acest lucru este atât de comun încât Git configurează de fapt remote-ul să fie numit `origin` atunci când faci `git clone` al unui repozitoriu.",
"",
"Din păcate, numele complet `origin` nu se potrivește în UI-ul nostru, așa că folosim `o` ca prescurtare :( Doar amintește-ți că atunci când folosești Git în viața reală, remote-ul tău se va numi probabil `origin`!",
"",
"Este mult de procesat, așa că hai să vedem totul în acțiune."
]
}
},
{
"type": "GitDemonstrationView",
"options": {
"beforeMarkdowns": [
"Hai să trecem pe o ramură remote și să vedem ce se întâmplă."
],
"afterMarkdowns": [
"Așa cum poți vedea, Git ne-a pus în modul detached `HEAD` și nu a actualizat `o/main` când am adăugat un nou commit. Acest lucru se datorează faptului că `o/main` se va actualiza doar atunci când remote-ul se actualizează."
],
"command": "git checkout o/main; git commit",
"beforeCommand": "git clone"
}
},
{
"type": "ModalAlert",
"options": {
"markdowns": [
"Pentru a termina acest nivel, fă un commit o dată pe `main` și apoi încă o dată după ce ai trecut pe `o/main`. Acest lucru te va ajuta să înțelegi cum se comportă diferit ramurile remote și că acestea se actualizează doar pentru a reflecta starea remote-ului."
]
}
}
]
},
"ru_RU": {
"childViews": [
{