JavaRush /Java блогы /Random-KK /Git-пен жұмысты бастау: жаңадан бастаушыларға арналған ег...
Roman Beekeeper
Деңгей

Git-пен жұмысты бастау: жаңадан бастаушыларға арналған егжей-тегжейлі нұсқаулық

Топта жарияланған

Кіріспенің орнына

Сәлем болашақ аға бағдарламалық жасақтама инженері. Git-пен жұмысты бастау: жаңадан бастаушыларға арналған егжей-тегжейлі нұсқаулық - 1Бүгін біз нұсқаны басқару жүйесі туралы сөйлесетін боламыз, атап айтқанда Git (ағылшын грамматикасынан көрінуі мүмкін JIT емес, GIT деп оқыңыз). Иә, иә, мен Mercurial, SVN бар екенін білемін... Бірақ шынын айтайық: олардың уақыты өтіп кетті, мен оларға қымбат уақытыңызды босқа өткізбеймін. Біздің уақытымызда Git-ті білудің маңыздылығын түсіну үшін мен мынаны айтайын: бұл туралы білмей/түсінбестен, бағдарламалауда ештеңе істей алмайсыз. Бірақ сұлулығы мынада: үнемі жұмыс істеу үшін барлық командалар мен мүмкіндіктерді басыңызда сақтаудың қажеті жоқ. Сіз болып жатқан барлық нәрсені түсінуге көмектесетін пәрмендер жинағын білуіңіз керек.

Git негіздері

Git - бұл codeтың таратылған нұсқасын басқару жүйесі. Ол бізге не үшін керек? Бөлінген топтарға жұмысты басқару жүйесінің қандай да бір түрі қажет. Уақыт өте келе болатын өзгерістерді қадағалау қажет. Яғни, қандай файлдар және қалай өзгергенін кезең-кезеңімен көреміз. Бұл бір тапсырма аясында не жасалғанын талдаған кезде өте маңызды: бұл кері оралуға мүмкіндік береді. Жағдайды елестетіп көрейік: жұмыс codeы болды, онда бәрі жақсы болды, бірақ біз бірдеңені жақсартуды, оны осында түзетуді, оны сол жерде өзгертуді шештік. Барлығы жақсы болды, бірақ бұл жақсарту функционалдылықтың жартысын бұзды және жұмыс істеу мүмкін болмады. Әрі қарай не? Гитасыз адам сағаттап отыруға және бәрінің бастапқыда қалай болғанын еске түсіруге тура келеді. Сонымен, біз міндеттемеге қайта ораламыз және бәрі де солай. Немесе екі әзірлеуші ​​codeты бір уақытта өзгертсе ше? Git-сіз бұл келесідей көрінеді: олар codeты түпнұсқадан көшіріп, қажет нәрсені жасады. Уақыт келеді және екеуі де негізгі қалтаға өзгертулерін қосқысы келеді. Ал бұл жағдайда не істеу керек?.. Мен бұл жұмысты орындау уақытын есептеуге де батылым бармайды. Git-ті пайдалансаңыз, мұндай проблемалар мүлдем болмайды.

Git орнату

Git-ті компьютеріңізге орнатайық. Мен әркімде әртүрлі ОЖ бар екенін түсінемін, сондықтан мен бірнеше жағдайды сипаттауға тырысамын.

Windows жүйесіне арналған орнату

Әдеттегідей, exe файлын жүктеп алып, оны іске қосу керек. Мұнда бәрі қарапайым: бірінші Google сілтемесін басыңыз , орнатыңыз және болды. Жұмыс үшін біз олар беретін bash консолін қолданамыз. Windows жүйесінде жұмыс істеу үшін Git Bash бағдарламасын іске қосу керек. Бастау мәзірінде ол осылай көрінеді: Git-пен жұмысты бастау: жаңадан бастаушыларға арналған егжей-тегжейлі нұсқаулық - 2Бұл қазірдің өзінде сіз жұмыс істей алатын консоль. Git файлын ашқан сайын жоба бар қалтаға өтпеу үшін қалтаны тінтуірдің оң жақ түймешігімен нұқып, консольді бізге қажет жолды ашуға болады: Git-пен жұмысты бастау: жаңадан бастаушыларға арналған егжей-тегжейлі нұсқаулық - 3

Linux үшін орнату

Әдетте git орнатылған және Linux дистрибутивтеріне енгізілген, себебі ол бастапқыда Linux ядросын әзірлеуге арналған құрал болып табылады. Бірақ ол жоқ болған жағдайлар бар. Мұны тексеру үшін терминалды ашып, теру керек: git --version. Егер нақты жауап болса, ештеңе орнатудың қажеті жоқ. Терминалды ашыңыз және орнатыңыз. Мен Ubuntu жүйесінде жұмыс істеймін, сондықтан ол үшін не жазу керектігін айта аламын: sudo apt-get install git. Міне, енді сіз Git-ті кез келген терминалда пайдалана аласыз.

MacOS жүйесінде орнату

Мұнда да алдымен Git бар-жоғын тексеру керек (Linux жүйесіндегідей жоғарыдан қараңыз). Олай болмаса, ең оңай жолы - соңғы нұсқасын жүктеп алу . Егер XCode орнатылған болса, Git міндетті түрде автоматты түрде орнатылады.

Git орнату

Git-те жұмыс орындалатын пайдаланушы параметрі бар. Бұл ақылға қонымды және қажетті нәрсе, өйткені міндеттеме жасалған кезде, Git Author өрісі үшін дәл осы ақпаратты алады. Барлық жобалар үшін пайдаланушы аты мен құпия сөзді орнату үшін келесі пәрмендерді енгізу керек:

git config --global user.name ”Ivan Ivanov”
git config --global user.email ivan.ivanov@gmail.com
Белгілі бір жоба үшін авторды өзгерту қажет болса (мысалы, жеке жоба үшін) --global-ды жоюға болады, бұл жұмыс істейді:

git config user.name ”Ivan Ivanov”
git config user.email ivan.ivanov@gmail.com

Кішкене теория ...

Тақырыптан қалмау үшін хабарламаңызға бірнеше жаңа сөздер мен әрекеттерді қосқан жөн... Әйтпесе әңгіме болмай қалады. Әрине, бұл кейбір жаргон және ағылшын тілінің көшірмесі, сондықтан мен ағылшын тіліндегі мағыналарды қосамын. Қандай сөздер мен әрекеттер?
  • git репозиторийі;
  • міндеттеу (міндеттеу);
  • фorал;
  • біріктіру;
  • қақтығыстар;
  • Тарт;
  • Басыңыз;
  • кейбір файлдарды елемеу жолы (.gitignore).
Тағыда басқа.

Гиттегі штаттар

Гитада түсіну және есте сақтау қажет бірнеше күй бар:
  • бақыланбаған;
  • өзгертілген;
  • дайындалған (сатыланған);
  • жасалды.

Бұны қалай түсінуге болады?

Бұл біздің codeтағы файлдар орналасқан күйлер. Яғни, олардың өмір жолы әдетте келесідей көрінеді:
  1. Жасалған және репозиторийге қосылмаған файл бақыланbyteын күйде болады.
  2. Біз Git репозиторийіне қосылған файлдарға өзгерістер енгіземіз - олар өзгертілген күйде.
  3. Біз өзгерткен файлдардың ішінен біз тек қажеттілерді (немесе барлығын) таңдаймыз (мысалы, құрастырылған сыныптар қажет емес) және өзгерістері бар бұл сыныптар кезеңдік күйге түседі.
  4. Кезеңдік күйден дайындалған файлдардан тапсырма жасалады және Git репозиторийіне өтеді. Осыдан кейін кезеңдік күй бос. Бірақ өзгертілгенде әлі де бір нәрсе болуы мүмкін.
Бұл келесідей (ресми құжаттағы сурет, сондықтан оған сенуге болады)): Git-пен жұмысты бастау: жаңадан бастаушыларға арналған егжей-тегжейлі нұсқаулық - 4

Міндеттеме дегеніміз не

Тапсырма нұсқаны басқарудағы негізгі нысан болып табылады. Ол осы міндеттемеден кейінгі барлық өзгерістерді қамтиды. Тапсырмалар бір-бірімен жеке байланыстырылған тізім сияқты байланысты. Атап айтқанда: Бірінші міндеттеме бар. Екінші міндеттеме жасалғанда, ол (екінші) біріншіден кейін келетінін біледі. Осылайша сіз ақпаратты қадағалай аласыз. Міндеттеменің метадеректер деп аталатын өз ақпараты да бар:
  • оны табуға болатын бірегей идентификатор;
  • оны жасаған автордың аты-жөні;
  • міндеттеменің жасалған күні;
  • осы міндеттеме кезінде не жасалғанын сипаттайтын түсініктеме.
Мынадай көрінеді: Git-пен жұмыс істеу: жаңадан бастаушыларға арналған егжей-тегжейлі нұсқаулық - 5

Фorал дегеніміз не

Git-ті бастау: жаңадан бастаушыларға арналған егжей-тегжейлі нұсқаулық - 6Фorал міндеттеменің көрсеткіші болып табылады. Міндеттеме өзінен бұрын қандай міндеттеме келгенін білетіндіктен, фorал міндеттемені көрсеткенде, алдыңғылардың барлығы да соған сілтеме жасайды. Осыған сүйене отырып, бір міндеттемені көрсететін көптеген фorалдар болуы мүмкін деп айта аламыз. Жұмыс тармақтарда орындалады, сондықтан жаңа міндеттеме жасалғанда, фorал өз көрсеткішін жаңа міндеттемеге жылжытады.

Git қолданбасын бастау

Сіз тек жергілікті репозиториймен немесе қашықтағы репозиториймен жұмыс істей аласыз. Қажетті пәрмендерді өңдеу үшін сіз тек жергілікті репозиторийді пайдалана аласыз. Ол барлық ақпаратты .git қалтасындағы жобада тек жергілікті түрде сақтайды. Егер біз қашықтан басқару туралы айтатын болсақ, онда барлық ақпарат қашықтағы serverде сақталады: жобаның тек көшірмесі ғана жергілікті жерде сақталады, оған өзгертулерді қашықтағы репозиторийге жіберуге болады (git push). Мұнда және одан әрі біз консольде git-пен жұмыс істеуді талқылаймыз. Әрине, сіз кейбір графикалық шешімдерді пайдалана аласыз (мысалы, Intellij IDEA-да), бірақ алдымен қандай командалар болып жатқанын және олардың нені білдіретінін анықтау керек.

Git-пен жергілікті репозиторийде жұмыс істеу

Әрі қарай, мақаланы оқыған кезде мен жасаған барлық қадамдарды орындауды ұсынамын. Бұл материалды түсінуді және есте сақтауды жақсартады. Жақсы тәбет :) Жергілікті репозиторий жасау үшін мынаны жазу керек:

git init
Начало работы с Git: подробный гайд для новичков - 7Бұл консоль орналасқан жерде .git қалтасын жасайды. .git — Git репозиторийі туралы барлық ақпаратты сақтайтын қалта. Оны жоюдың қажеті жоқ ;) Содан кейін файлдар осы жобаға қосылады және олардың күйі Бақыланбаған болады. Ағымдағы жұмыс күйін көру үшін мынаны жазыңыз:

git status
Начало работы с Git: подробный гайд для новичков - 8Біз басты фorалдамыз, басқасына ауысқанша бәрі сол қалпында қалады. Осылайша сіз қай файлдардың өзгертілгенін, бірақ кезеңдік күйге әлі қосылмағанын көре аласыз. Оларды кезеңдік күйге қосу үшін git add жазу керек. Мұнда бірнеше нұсқа болуы мүмкін, мысалы:
  • git add -A - кезеңдік күйдегі барлық файлдарды қосу;
  • git қосу. — осы қалтадағы барлық файлдарды және барлық ішкі файлдарды қосыңыз. Негізінде алдыңғысымен бірдей;
  • git add <файл аты> - тек белгілі бір файлды қосады. Мұнда кейбір үлгіге сәйкес қосу үшін тұрақты өрнектерді пайдалануға болады. Мысалы, git add *.java: бұл сізге тек java кеңейтімі бар файлдарды қосу керек екенін білдіреді.
Алғашқы екі нұсқаның қарапайым екені анық, бірақ қосу арқылы ол қызықтырақ болады, сондықтан біз жазамыз:

git add *.txt
Күйді тексеру үшін біз бұрыннан білетін пәрменді қолданамыз:

git status
Начало работы с Git: подробный гайд для новичков - 9Бұдан біз тұрақты өрнектің дұрыс жұмыс істегенін көреміз, енді test_resource.txt кезеңдік күйде. Соңында, соңғы кезең (жергілікті репозиториймен, қашықтағымен тағы біреуі болады;)) - жаңа міндеттемені жасаңыз және жасаңыз:

git commit -m “all txt files were added to the project”
Начало работы с Git: подробный гайд для новичков - 10Әрі қарай, фorалдың жазылу тарихын қарауға арналған тамаша бұйрық бар. Оны қолданайық:

git log
Начало работы с Git: подробный гайд для новичков - 11Мұнда сіз біздің бірінші міндеттеменің біз тасымалдаған мәтінмен бірге пайда болғанын көре аласыз. Біз тапсыратын мәтін осы міндеттеме кезінде не жасалғанын мүмкіндігінше дәл анықтауы керек екенін түсіну өте маңызды. Бұл болашақта бірнеше рет көмектеседі. Әлі ұйықтап үлгермеген ізденімпаз оқырман: GitTest.java файлына не болды? Енді біз анықтаймыз, бұл үшін пайдаланыңыз:

git status
Начало работы с Git: подробный гайд для новичков - 12Көріп отырғанымыздай, ол қадағаланбаған күйінде қалады және қанатында күтуде. Немесе оны жобаға мүлдем қосқымыз келмейтін шығар? Кейде солай болады. Әрі қарай, оны қызықты ету үшін test_resource.txt мәтіндік файлымызды өзгертуге тырысайық. Онда мәтінді қосып, күйді тексерейік:

git status
Начало работы с Git: подробный гайд для новичков - 13Мұнда сіз екі күйдің айырмашылығын анық көре аласыз - бақыланбаған және өзгертілген. GitTest.java бақыланбаған күйде және test_resource.txt өзгертілген күйде. Енді өзгертілген күйде файлдар бар болғандықтан, біз оларға енгізілген өзгерістерді қарай аламыз. Мұны пәрмен арқылы жасауға болады:

git diff
Начало работы с Git: подробный гайд для новичков - 14Яғни, біздің мәтіндік файлға сәлем әлем!-ді қосқанымды осы жерден анық көруге болады. Мәтіндік файлға өзгертулер қосып, орындаңыз:

git add test_resource.txt
git commit -m “added hello word! to test_resource.txt”
Барлық міндеттемелерді қарау үшін мынаны жазыңыз:

git log
Начало работы с Git: подробный гайд для новичков - 15Көріп отырғаныңыздай, қазірдің өзінде екі міндеттеме бар. Сол сияқты біз GitTest.java қосамыз. Енді түсініктемелер жоқ, тек пәрмендер:

git add GitTest.java
git commit -m “added GitTest.java”
git status
Начало работы с Git: подробный гайд для новичков - 16

.gitignore бағдарламасымен жұмыс істеу

Біз тек бастапқы codeты сақтағымыз келетіні анық және репозиторийде басқа ештеңе жоқ. Басқа не болуы мүмкін? Кем дегенде құрастырылған сыныптар және/немесе әзірлеу орталарын жасайтын файлдар. Git оларды елемеуі үшін арнайы файлды жасау керек. Біз мұны істейміз: жобаның түбірінде .gitignore деп аталатын файлды жасаймыз және бұл файлда әрбір жол еленбейтін үлгі болады. Бұл мысалда git ignore келесідей болады:

```
*.class
target/
*.iml
.idea/
```
Енді қарастырайық:
  • бірінші жол .class кеңейтімі бар барлық файлдарды елемеу;
  • екінші жол - мақсатты қалтаны және оның құрамындағы барлық нәрсені елемеу;
  • үшінші жол - .iml кеңейтімі бар барлық файлдарды елемеу;
  • Төртінші жол - .idea қалтасын елемеу.
Оны мысалмен көрейік. Мұның қалай жұмыс істейтінін көру үшін жобаға құрастырылған GitTest.class сыныбын қосыңыз және жоба күйін қараңыз:

git status
Начало работы с Git: подробный гайд для новичков - 17Әрине, жобаға құрастырылған сыныпты кездейсоқ қосқымыз келмейді (егер git add -A қолдансақ). Ол үшін .gitignore файлын жасаңыз және бұрын сипатталғанның барлығын қосыңыз: Начало работы с Git: подробный гайд для новичков - 18Енді жобаға жаңа міндеттемемен git ignore қосамыз:

git add .gitignore
git commit -m “added .gitignore file”
Ал енді ақиқат сәті: бізде Git репозиторийіне қосқымыз келмейтін, бақыланbyteын күйде құрастырылған GitTest.class сыныбы бар. Бұл жерде git ignore жұмыс істеуі керек:

git status
Начало работы с Git: подробный гайд для новичков - 19Барлығы түсінікті) Git ignore +1)

Фorалдармен жұмыс және т.б

Әрине, бір салада жұмыс істеу біреуге ыңғайсыз және ұжымда бірнеше адам болғанда мүмкін емес. Бұл үшін фorал бар. Жоғарыда айтқанымдай, фorал жай ғана міндеттемеге арналған жылжымалы көрсеткіш. Бұл бөлімде біз әртүрлі салаларда жұмыс істеуді қарастырамыз: бір тармақтан екіншісіне өзгерістерді қалай біріктіру керек, қандай қақтығыстар туындауы мүмкін және т.б. Репозиторийдегі барлық фorалдардың тізімін көру және қайсысында екеніңізді түсіну үшін сізге мынаны жазу керек:

git branch -a
Начало работы с Git: подробный гайд для новичков - 20Қарап отырсаңыз, бізде бір ғана негізгі тармақ бар, ал оның алдындағы жұлдызша біздің осында екенімізді айтады. Айтпақшы, қай фorалда екенімізді білу үшін біз күйді тексеруді (git status) пайдалана аламыз. Әрі қарай, фorалдарды құрудың бірнеше нұсқасы бар (мүмкін одан да көп болуы мүмкін, мен оларды қолданамын):
  • біз жұмыс істейтін фorалдың негізінде жаңа фorал құру (99% жағдайда);
  • нақты міндеттемеге негізделген фorалды құру (1%).

Арнайы міндеттеме негізінде фorал жасаңыз

Біз бірегей міндеттеме идентификаторына сенеміз. Оны табу үшін біз жазамыз:

git log
Начало работы с Git: подробный гайд для новичков - 21Мен міндеттемені «сәлем әлем қосты...» деген түсініктемемен атап өттім. Оның бірегей идентификаторы бар - “6c44e53d06228f888f2f454d3cb8c1c976dd73f8”. Мен осы міндеттемеден бастап даму бөлімін құрғым келеді. Ол үшін мен жазамын:

git checkout -b development 6c44e53d06228f888f2f454d3cb8c1c976dd73f8
Негізгі тармақтан тек алғашқы екі тапсырманы қамтитын тармақ жасалады. Мұны тексеру үшін алдымен басқа фorалға көшкенімізге көз жеткізіп, ондағы міндеттемелердің санын қарастырамыз:

git status
git log
Начало работы с Git: подробный гайд для новичков - 22Бұл рас: бізде екі міндеттеме бар екені белгілі болды. Айтпақшы, қызықты сәт: бұл тармақта әлі .gitignore файлы жоқ, сондықтан біздің құрастырылған файлымыз (GitTest.class) енді бақыланбаған күйде бөлектелген. Енді біз фorалдарымызды жазу арқылы қайта қарай аламыз:

git branch -a
Начало работы с Git: подробный гайд для новичков - 23Екі тармақ бар екенін байқауға болады - игеру және дамыту - және біз қазір даму үстіндеміз.

Ағымдағы фorалға негізделген фorал жасаңыз

Фorалды құрудың екінші жолы - басқасына салу. Мен негізгі тармаққа негізделген фorал құрғым келеді, сондықтан алдымен оған ауысуым керек, ал келесі қадам - ​​жаңасын жасау. Қарап көрейік:
  • git checkout master - негізгі фorалға көшу;
  • git күйі - оның шеберде екенін тексеріңіз.
Начало работы с Git: подробный гайд для новичков - 24Мұнда сіз біздің негізгі тармаққа көшкенімізді көре аласыз, git ignore осында қазірдің өзінде жұмыс істеп тұр және құрастырылған сынып енді бақыланbyteын болып көрінбейді. Енді біз негізгі фorал негізінде жаңа фorал жасаймыз:

git checkout -b feature/update-txt-files
Начало работы с Git: подробный гайд для новичков - 25Егер сізде бұл фorалдың мастермен бірдей болмайтынына күмәніңіз болса, оны git log жазу және барлық міндеттемелерді қарау арқылы оңай тексеруге болады. Олардың төртеуі болуы керек.

Қақтығыстарды шешу

Қақтығыстың не екенін түсінбес бұрын, бір тармақты екіншісіне біріктіру (біріктіру) туралы айту керек. Бұл сурет бір тармақтың екіншісіне біріктірілген процесін көрсетуі мүмкін: Начало работы с Git: подробный гайд для новичков - 26Яғни, негізгі тармақ бар. Бір сәтте одан қайталама жасалады, онда өзгерістер орын алады. Жұмыс аяқталғаннан кейін бір тармақты екіншісіне біріктіру керек. Мен әртүрлі мүмкіндіктерді сипаттамаймын: мен осы мақаланың аясында тек түсінікті жеткізгім келеді, қажет болған жағдайда егжей-тегжейлерді өзіңіз табасыз. Сонымен, біздің мысалда біз функция/update-txt-файлдар тармағын жасадық. Фorал атында жазылғандықтан мәтінді жаңартып отырамыз. Начало работы с Git: подробный гайд для новичков - 27Енді осы мәселе үшін жаңа міндеттеме жасау керек:

git add *.txt 
git commit -m “updated txt files”
git log
Начало работы с Git: подробный гайд для новичков - 28Енді, егер функция/update-txt-файлдар тармағын шеберге біріктіргіміз келсе, біз мастерге өтіп, git merge feature/update-txt-files жазуымыз керек:

git checkout master
git merge feature/update-txt-files
git log
Начало работы с Git: подробный гайд для новичков - 29Нәтижесінде, енді басты тармақта функция/update-txt-файлдарына қосылған міндеттеме бар. Бұл функция мүмкіндік тармағын жою үшін қосылған. Ол үшін жазамыз:

git branch -D feature/update-txt-files
Әзірге түсінікті, солай ма? Жағдайды қиындатып көрейік: енді txt файлын қайтадан өзгерту керек делік. Бірақ енді бұл файл шеберде де өзгертіледі. Яғни, ол параллель өзгереді және Git жаңа codeты негізгі тармаққа біріктіргіміз келген жағдайда не істеу керектігін түсіне алмайды. Бар! Біз мастер негізінде жаңа фorал жасаймыз, text_resource.txt файлына өзгерістер енгіземіз және осы мәселе бойынша міндеттеме жасаймыз:

git checkout -b feature/add-header
... делаем изменения в файле
Начало работы с Git: подробный гайд для новичков - 30

git add *.txt
git commit -m “added header to txt”
Начало работы с Git: подробный гайд для новичков - 31Негізгі бөлімге өтіңіз және осы мәтіндік файлды мүмкіндік тармағымен бірдей жолда жаңартыңыз:

git checkout master
… обновor test_resource.txt
Начало работы с Git: подробный гайд для новичков - 32

git add test_resource.txt
git commit -m “added master header to txt”
Ал енді ең қызықты сәт: мүмкіндік/қосымша тақырып тармағынан негізгіге өзгертулерді біріктіру керек. Біз негізгі фorалдамыз, сондықтан бізге мынаны жазу керек:

git merge feature/add-header
Бірақ біз test_resource.txt файлында қайшылықпен нәтиже аламыз: Начало работы с Git: подробный гайд для новичков - 33Мұнда біз Git бұл codeты қалай біріктіру керектігін өз бетінше шеше алмағанын көреміз және біз алдымен қақтығысты шешуіміз керек, содан кейін ғана міндеттеме алуымыз керек дейді. Жарайды, мәтіндік редакторда конфликті бар файлды ашып көрейік: Начало работы с Git: подробный гайд для новичков - 34git бұл жерде не істегенін түсіну үшін, қайда жазғанымызды есте сақтау және салыстыру керек:
  1. «<<<<<<< HEAD» және «=======» арасындағы негізгі тармақтағы осы жолда болған негізгі өзгерістер.
  2. «=======» және «>>>>>>>> мүмкіндік/қосымша тақырып» арасында мүмкіндік/қосу тақырыбы тармағында болған өзгерістер бар.
Осылайша, Гит осы кезде бұл файлды қалай біріктіру керектігін анықтай алмағанын көрсетеді, бұл бөлімді әртүрлі тармақтардан екі бөлікке бөліп, өзіміз шешуді ұсынды. Жарайды, күшті ерік-жігермен мен бәрін жоюды шештім, тек сөз тақырыбын қалдырыңыз: Начало работы с Git: подробный гайд для новичков - 35Өзгерістердің күйін қарастырайық, сипаттама сәл басқаша болады. Өзгертілген күй болмайды, бірақ біріктірілмеген. Сондықтан біз бесінші күйді қауіпсіз түрде қоса аламыз ... Бірақ бұл қажет емес деп ойлаймын, көрейік:

git status
Начало работы с Git: подробный гайд для новичков - 36Бұл басқа, әдеттен тыс жағдай екеніне көзіміз жетті. жалғастырайық:

git add *.txt
Начало работы с Git: подробный гайд для новичков - 37Сипаттамада олар тек git commit жазуды ұсынатынын байқайсыз. Біз тыңдаймыз және жазамыз:

git commit
Начало работы с Git: подробный гайд для новичков - 38Мұның бәрі: біз осылай жасадық - консольдегі қақтығысты шештік. Әрине, әзірлеу орталарында мұны біршама жеңілдетуге болады, мысалы, Intellij IDEA-да бәрі соншалықты жақсы орнатылған, ондағы барлық қажетті әрекеттерді орындауға болады. Бірақ әзірлеу ортасы қақпақтың астында көп нәрсені жасайды және біз көбінесе ол жерде не болғанын түсінбейміз. Ал түсіністік болмаған кезде проблемалар туындауы мүмкін.

Қашықтағы репозиторийлермен жұмыс істеу

Соңғы қадам қашықтағы репозиториймен жұмыс істеу үшін қажет тағы бірнеше пәрмендерді түсіну болып табылады. Жоғарыда айтқанымдай, қашықтағы репозиторий - бұл репозиторий сақталатын және оны клондауға болатын орын. Қашықтағы репозитарийлердің қандай түрлері бар? Көптеген мысалдар бар:
  • GitHub - репозиторийлер мен бірлескен дамуға арналған ең үлкен репозиторий. Мен мұны алдыңғы мақалаларда сипаттадым. Менің Github тіркелгісіне
    жазылыңыз . Мен жұмыс барысында оқып жүрген салалар бойынша жұмысымды жиі көрмеге қоямын.

  • GitLab – бұл Git үшін өзінің вики, ақауларды бақылау жүйесі , CI/CD құбыры және басқа мүмкіндіктері бар code репозиторийін басқару жүйесін қамтамасыз ететін ашық бастапқы веб- негізделген DevOps өмірлік цикл құралы . Майкрософт GitHub-ты сатып алғаны туралы жаңалықтан кейін кейбір әзірлеушілер GitLab-тағы жұмыстарын қайталады.

  • BitBucket - бұл Mercurial және Git нұсқасын басқару жүйелеріне негізделген жобаларды хостингке және бірлесіп әзірлеуге арналған веб-қызмет. Бір кездері оның GitHub-қа қарағанда үлкен артықшылығы болды, өйткені оның тегін жеке репозиторийлері болды. Өткен жылы GitHub бұл мүмкіндікті барлығына тегін қол жетімді етті.

  • Тағыда басқа…

Қашықтағы репозиториймен жұмыс істеу кезінде сізге қажет бірінші нәрсе - жобаны жергілікті жобаға клондау. Бұл жағдайда мен жергілікті жерде жасаған жобаны экспорттадым, енді әркім оны жазу арқылы өзі үшін клондай алады:
git clone https://github.com/romankh3/git-demo
Қазір жергілікті жерде жобаның толық көшірмесі бар. Жобаның соңғы көшірмесі жергілікті жерде орналасқанына сенімді болу үшін, олар айтқандай, деректерді жазу арқылы тастау керек:

git pull
Начало работы с Git: подробный гайд для новичков - 39Біздің жағдайда қашықтан ештеңе өзгерген жоқ, сондықтан жауап: Қазірдің өзінде жаңартылған. Бірақ қашықтағы репозиторийге кейбір өзгертулер енгізсем, біз оларды тартып алғаннан кейін жергілікті жаңарту жаңартылады. Соңында, соңғы пәрмен деректерді қашықтағы репозиторийге жіберу болып табылады. Жергілікті жерде бірдеңені орындап, оны қашықтағы репозиторийге тасымалдағымыз келгенде, алдымен жергілікті түрде жаңа міндеттеме жасауымыз керек. Мұны істеу үшін мәтіндік файлымызға тағы бір нәрсе қосайық: Начало работы с Git: подробный гайд для новичков - 40Енді бұл біз үшін әдеттегі нәрсе - біз осы мәселе бойынша міндеттеме жасаймыз:

git add test_resource.txt
git commit -m “prepated txt for pushing”
Енді оны қашықтағы репозиторийге жіберу пәрмені:

git push
Начало работы с Git: подробный гайд для новичков - 41Менің саған айтқым келгені осы болды. Назарларыңызға рахмет. Менің GitHub тіркелгіме жазылыңыз , онда мен жұмыста оқыған және пайдаланатын жобаларымның әртүрлі керемет мысалдарын жариялаймын.

пайдалы сілтемелер

Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION