20.
ინსტრუმენტები - GIT
GIT არის პროექტებზე ერთობლივი მუშაობის სისტემა ფაილების ვერსიების შენახვისა და კონტროლის ფუნქციებით. GIT-ში ყველა მონაწილეს მთელი პროექტი თავის ლოკალურ დისკზე აქვს. მსგავსი სისტემები SVN, Mercurial, Perforce, CVS, Bitkeeper მომსახურე საიტები github, bitbucket. არის ცენტრალიზებული და განაწილებული(GIT) ვერსიების კონტროლის სისტემა. განაწილებულ სისტემაში ყველა მონაწილე ინახავს პროექტის ყველა ვერსიას და მის ისტორიას, ცენტრალურში ერთ ადგილზე ინახება. Github Desktop პროგრამის სახელმძღვანელო ახალი ფაილების დამატება რეპოზიტორიაში ხდება საიტიდან github.com ოპციით add file შემდეგ საჭიროა Github desktop-ში Pull ბრძანება და ფაილები დაემატება რეპოზიტორიის ლოკალურ ფოლდერშიც(კომპიუტერში) მენიუ: File - New Repository - ახალი რეპოზიტორიის შექმნა, იქმნება კომპიუტერის ლოკალურ ფოლდერში File - Add Local Repository - ლოკალური რეპოზიტორიის გახსნა File - Clone Repository - კლონირება გიტჰაბიდან ან ლოკალიდან Option - Integrations - ინტეგრაცია სუბლიმესთან ან ვიზუალ სტუდიო კოდთან Option - Git - გიტჰაბის სახელის და მეილის ჩაწერა Repository - Push - ცვლილებების შენახვა Repository - Pull - ცვლილებების წამოღება გიტჰაბიდან ლოკალურში Show in Explorer ფაილების ჩვენება Open in Sublime Text ტექსტურ რედაქტორში გახსნა Publish your repository to GitHub რეპოზიტორიის გამოქვეყნება გიტჰაბზე განყოფილებები: Current Repository - რეპოზიტორებს შორის გადართვა Current Branch - განშტოებებს შორის გადართვა Fetch origin - ცვლილებების განახლება და სინქრონიზაცია ლოკალურ და დაშორებულ ფაილებს შორის Changes - მიმდინარე ცვლილებების სია History - რეპოზიტორიის ოპერაციათა ისტორია ზოგადი ოპერაციები: Commit - ცვლილებების დაფიქსირება, კომიტს აქვს უნიკალური იდენტიფიკატორი, ავტორი, თარიღი, კომენტარები. Tag - ანიჭებს სახელს განსაზღვრულ ვერსიას clone - კლონირებას უკეთებს მთელ საცავს Pull - აკოპირებს რეპოზიტორიის ცვლილებებს დაშორებული საცავიდან ლოკალურ საცავში Push - აკოპირებს რეპოზიტორიის ცვლილებას ლოკალურიდან დაშორებულ საცავში ზოგადი ბრძანებები git config - პარამეტრების შეცვლა git config --global user.email username@gmail.com მეილის დაყენება git init - GIT რეპოზიტორიის შექმნა git add - ფაილების დამატება git add temp.txt ტექსტის დამატება git clone - რეპოზიტორიის კლონირება git clone username@host:/C/folder/Repository git commit - ცვლილების შენახვა git commit –m “message” git status - ფაილების სია მდგომარეობის სტატუსებით git push - ცვლილების შენახვა მთავარ შტოში git push origin master git checkout - განშტოების შექმნა command git checkout -b- შტოებს შორის გადასვლა git checkout git remote - გადართვა დაშორებულ რეპოზიტორიასთან - ლოკალური რეპოზიტორიის დაკავშირება დაშორებულთან git remote add origin <адрес.удаленного.сервера> git branch - შტოს ჩვენება, შექმნა, წაშლა git branch –d <имя-ветки> შტოს წაშლა git pull - გლობალური ცვლილებების დამატება ლოკალურ ფაილებში git merge - განშტოების გაერთიანება აქტიურ განშტოებასთან git merge <имя-ветки> git diff - განშტოებებს შორის განსხვავების გამოვლენა git diff --base <имя-файла> git tag - კომიტის მარკირება/მონიშვნა git tag 1.1.0 <вставьте-commitID-здесь> git log - განშტოებაში ყველა კომიტის სიის ჩვენება git reset - კომიტის ბოლო მდგომარეობამდე დაბრუნება git rm - ფაილის წაშლა მუშა კატალოგიდან git rm имяфайла.txt git stash - ცვლილებების დროებითი შენახვა git show - git ობიექტზე ინფორმაციის ნახვა git fetch - დაშორებული რეპოზიტორიიდან ყველა ობიექტთან წვდომა git fetch origin git ls-tree - ობიექტების ხის ნახვა დასახელებებთან ერთად git ls-tree HEAD git cat-file - ობიექტის ტიპის ნახვა SHA1-ის მეშვეობით git cat-file –p d670460b4b4aece5915caf5c68d12f560a9fe3e4 git grep - ფრაზის ან სიტყვის მოძებნა ხის შემადგენლობაში git grep "www.hostinger.ru" gitk - ლოკალური რეპოზიტორიის გრაფიკული ინტერფეისი git instaweb - ლოკალურ რეპოზიტორიასთან დაკავშირებული ვებსერვერის გაშვება git instaweb –httpd=webrick git gc - რეპოზიტორიის ოპტიმიზაცია git archive - ფაილების დაარქივება git archive --format=tar master git fsck - ფაილური სისტემის მთლიანობის შემოწმება git rebase - სხვა განშტოების კომიტის გამოყენება git rebase master კომიტების იდენტიფიცირება ხდება უსაფრთხო ჰეშებით SHA1 URL არის რეპოზიტორიის მისამართი ბრძანება git status გამოსახავს ფაილის 4 მდგომარეობას: 1. untracked - უცნობი 2. modified - უკვე შეცვლილი 3. staged - შესანახად გამზადებული 4. უცვლელი, საწყისი სახით GIT-ის ფაილების სტრუქტურა ფოლდერში Git init რეპოზიტორიის შექმნისას ├── HEAD ├── branches ├── config ├── description ├── hooks │ ├── pre-commit.sample │ ├── pre-push.sample │ └── ... ├── info │ └── exclude ├── objects │ ├── info │ └── pack └── refs ├── heads └── tags 1. HEAD - მიუთითებს განშტოებაში ბოლო კომიტზე. 2. config - პარამეტრების ფაილი, სადაც ინახება რეპოზიტორიის url, სახელი, მეილი და ა.შ. 3. description - რეპოზიტორიის აღწერა 4. hooks - სკრიპტების ფოლდერი. 5. info/exclude - რეპოზიტორიის გარეთ მყოფი ფაილები კომიტი = ცვლილებების(მუშა ფოლდერების) შენახვა. დაკომიტებისას ხდება ფაილის დაარქივება და სათაურთან(ჰეშთან) ერთად შენახვა. ├── 4c │ └── f44f1e3fe4fb7f8aa42138c324f63f5ac85828 // hash ├── 86 │ └── 550c31847e518e1927f95991c949fc14efc711 // hash ├── e6 │ └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391 // hash ├── info // let's ignore that └── pack // let's ignore that too კომიტი შედგება 4 საკითხისგან: 1. სახელი(ჰეში) 2. კომენტარები 3. შემსრულებლის ინფორმაცია 4. მშობელი კომიტის ჰეში