Огляд команд Git. Способи роботи Git. Порівняння команд Git і svn.
У цій статті я збираюся описати основні підходи до роботи з git і основними командами git проти систем subversion svn.
Автор: Сергій Тарабан
:ad:Порівняння команд svn і git
Таблиця порівняння команд svn і git.|
SVN |
Git |
Огляд |
|
оновлення svn |
git pull --rebase |
Отримати останні зміни з віддаленого сховища |
|
svn revert -R |
git checkout. або git checkout -- . |
Скасувати всі оновлені зміни. |
|
git reset --hard origin/ |
Повне повернення. Зробіть свій локальний репозиторій таким же, як і віддалений. Якщо у вас є кілька ненадісланих комітів, ця команда видалить їх. |
|
|
svn commit –m”” svn delete |
git add -A . git commit -m”” git push orign |
Зафіксуйте зміни в локальному сховищі, а потім надішліть їх у віддалений репозиторій. |
|
svn co [папка] |
git clone [папка] |
Створити локальне сховище git на основі віддаленого сховища |
|
svnstatus |
статус git |
Інформація про локальне сховище. |
|
журнал svn |
git log --oneline |
Показати журнал одним рядком |
|
svn add |
git add -a . |
Додати всі файли для коміту: видалені, змінені чи нові |
|
svn delete --keep-local svn rm --keep-local |
git reset |
Видалити файл або папку з покажчика |
|
Не підтримується |
git clean -f |
Видалити всі невідстежувані файли |
|
svn update -r |
git checkout |
Перейти на commit з хешем |
|
- |
git checkout |
Повернути |
|
svn видалити |
git rm [ім’я файлу] |
Видалити файл і додати його для коміту (до списку комітів) |
|
svn pedit svn:ignore . |
Створіть файл .gitignoreв у кореневій папці репозиторію. Потім додати існує відносний шлях до файлу або папки, які ви хочете додати до списку ігнорування. |
Додати файл до списку ігнорування |
Шляхи роботи Git.
Існує кілька підходів або правил роботи при роботі з git. Кожне з цих правил легко поєднується між собою.1. спосіб SVN
Цей підхід git дуже схожий на роботу з системою контролю версій SVN. Оскільки git є розподіленою системою, ми формально маємо два репозиторії – локальний і віддалений (походження). Усі коміти ми робимо в нашому локальному сховищі за допомогою команди my commit, а потім синхронізуємо репозиторій із віддаленим за допомогою командиpull --rebase.Параметр --rebase переносить наш комміт на самий верх стеку комітів, роблячи його найважливішим. Це може призвести до деяких конфліктів, які зазвичай легко вирішити.
Будьте обережні, користуючись інструментом злиття. У цьому випадку їхні файли - це ваші зміни, а мої файли - файли з віддаленого сховища.
Після цих дій нам потрібно синхронізувати наше локальне сховище з віддаленим за допомогою команди git push origin, де гілка - це поточна робоча гілка. Якби ви не робили жодних нових розгалужень, за замовчуванням буде розгалуження - master.
2. Сховати шлях
Робота через сховище буфера.Git stash buffer - це функція, яка дозволяє приховати ваші зміни від файлової системи.
Як це працює. Припустімо, ви внесли зміни до файлів і хочете отримати останню версію вихідного коду з віддаленого сховища. Але ви не можете виконати pull –rebase, оскільки у вас є змінені файли (незафіксовані зміни). Щоб отримати нову версію файлів, вам потрібно або зробити комміт, або “сховати” ваші змінені файли.
git stash
Ця команда приховає все, що було додано до індексу. Якщо ви хочете приховати невідстежувані файли, вам потрібно виконати команду git add перед виконанням команди stash.
Тепер ви отримуєте чистий репозиторій і тепер можете виконати pull –rebase.
Після отримання ви можете повернути свої зміни зі схованки за допомогою команди git stash pop або git stash apply
Різниця в командах полягає в тому, що перша очищає тайник, а друга ні. Тож ви можете використовувати сховище буфера як резервне копіювання.
Оскільки stash є стековим буфером, він може зберегти багато змін.
Детальніше: git help stash
3. Розгалуження Git
Цей підхід полягає в тому, що будь-яка нова функція, яку ви реалізуєте, або помилка, яку ви виправляєте, має бути в окремій гілці. Коли виправлення або функція завершена, ви об’єднуєте цю гілку в master. Використовуючи цей підхід, настійно рекомендується працювати в різних файлах і папках для кожної гілки, щоб уникнути конфліктів злиття.гілка git - створити нову гілку
git checkout - перейти до нової гілки
git push origin - push у новому сегменті у віддаленому сховищі створить там наш сегмент
git branch -a - список усіх бранчів, які ми маємо на даний момент. Наша поточна гілка виділена зеленим кольором.
Поточна гілка також додала команду git status.
Якщо ви зробили помилку, ви можете видалити або перейменувати бранч:
git branch -d - видалити бранч
git branch -m - перейменувати бранч
Наприклад, нам потрібні останні файли від бранч-майстра. Об’єднайте нашу філію з майстром бранчу.
git checkout master- перейти до master
git pull –rebase - оновити майстер до останніх змін
git checkout [our_branch] - повернутися до зовнішньої філії
git merge master - отримати зміни від master до нашої гілкиПотім ми внесли деякі зміни, виправили помилки або запровадили функцію, наприклад. Отже, тепер нам потрібно завантажити зміни в майстер.
git checkout [our_branch] - перейти до зовнішньої гілки, якщо ми ще не там
git pull –rebase - оновіть його до останніх змін
git checkout master - перейти на master
git pull –rebase - оновити майстер до останніх змін
git merge [our_branch] - об’єднати наші зміни в master
Злиття буде створено автоматично. Останнє, що вам знадобиться для перенесення ваших змін у віддалений репозиторій: git push origin master .
Автор: Сергій Тарабан