Якщо ви хочете краще пізнати ті частини git, про які раніше боялися запитати, то цей список для вас. Тут зібрані найбільш типові ситуації і способи їх вирішення як з особистого досвідуавтора, так і зібрані по всьому Інтернету.

Помилка в коментарі до коммітов

Якщо Комміт ще не був відправлений на сервер (push), то можна скористатися простою командою, що дозволяє редагувати текст повідомлення до останнього коммітов.

Спрощене управління змінної. Всі поліпшення в новому редакторі визначення збірки тепер доступні в редакторі визначень редакторів версій. Ви можете їх шукати і додавати за допомогою кнопки «Додати» або «Перетягувати». Перетягніть, щоб змінити порядок або клонувати завдання.

Групові змінні, вкладки «Збереження» і «Параметри». Тепер на вкладці «Параметри» ви можете створювати посилання з групами змінних, встановлювати середовище для зберігання інформації для кожного середовища і змінювати параметри на рівні версії випущеної версії, наприклад номер версії номера версії. Ви також можете зберегти середу в якості шаблону розгортання на вкладці «Завдання», встановити дозволу на рівні середовища і переупорядочить етапи.

git commit --amend

Як скасувати останній Комміт?

Можна використовувати git reset, ось так:

git reset --hard HEAD ~ 1

HEAD ~ 1 означає один Комміт до HEAD тобто до поточного положення. Варто зауважити, що це "ядерний" спосіб, який скасує всі зміни. Якщо вам потрібно зберегти все, що ви зробили, але ще не встигли закоммітіть, використовуйте:

git reset --soft HEAD ~ 1

Розгортання віртуальної машини з використанням груп розгортання

Групи змінних. Ви можете використовувати операції на рівні середовища для збереження в якості шаблонів і параметрів безпеки. Довкілля. Тепер управління випуском підтримує надійне розгортання на кількох комп'ютерах. Тепер ви можете організувати розгортання на кількох комп'ютерах і виконувати кумулятивні оновлення, забезпечуючи при цьому високу доступність всього програми.

Функції розгортання на основі агентів залежать від тих же агентів збірки і розгортання. На відміну від поточного підходу, коли ви встановлювали збірку і розгортання агента в групу проксі-сервера в пулі агентів і управляли розгортанням на віддалених цільових серверах, ви встановлюєте агент на кожному цільовому сервері безпосередньо і контролюєте кумулятивне розгортання на цих серверах. Ви можете використовувати весь каталог завдань на цільових комп'ютерах.

Видалити гілку на сервері

git push origin --delete імя_веткі

У чому різниця між "git pull" і "git fetch"?

git pull - це по суті git fetch після якого відразу ж следуюет git merge. git fetch отримує зміни з сервера і зберігає їх в refs / remotes /. Це ніяк не впливає на локальні гілки і поточні зміни. А git pull вже вливає всі ці зміни в локальну копію.

Група розгортання - це логічна цільова група з агентами, встановленими на кожному з них. Вони також визначають контекст безпеки вашої фізичної середовища. Групи розгортання можна використовувати на будь-який віртуальній машині, Де зареєстрований наш агент.

Коли у вас є група розгортання, ви можете легко налаштувати завдання, які потрібно виконати. Використовуючи теги, ви можете контролювати, що і на яких комп'ютерах він буде працювати, і як швидко чи повільно ви збираєтеся виконувати. Налаштування груп розгортання.

При запуску розгортання протоколи показують прогрес на всій групі комп'ютерів, на які ви націлилися. Курс в групі розгортання. Ця функція тепер є невід'ємною частиною управління випуском. Для його використання додаткових ліцензій не потрібно.

Як скасувати "git add" до коммітов?

Ви виконали git add имя_файла випадково і хочете скасувати додавання цього файлу. Якщо Комміт ще не було зроблено, то допоможе:

git reset имя_файла

Як вирішувати конфлікти злиття?

Використовуйте git mergetool, яка надає зручний інтерфейсдля вирішення конфліктів.

Видалити всі локальні файли і директорії, які не відслідковуються гітом з вашої поточної копії

Обережно! Краще зробіть бекап перед цим.

Розширені групи розгортання

Ми продовжуємо оживляти середовища збірки і випускати релізи та переробляти групи груп розгортання, щоб зробити їх більш зрозумілими і інтуїтивними. З цільової сторінки ви можете переглянути статус одержувачів в групі розгортання. Ви також можете управляти безпекою кожної групи розгортання або встановлювати дозволу за замовчуванням у всіх групах розгортання.

Інтерфейс групи розгортання. Для адресата в групі розгортання ви можете переглянути параметри зведеного, останнього розгортання і призначення. Ви можете налаштувати теги для своєї мети і контролювати, що починається в кожному пункті призначення. У майбутніх випусках ми додамо підтримку фільтрів для груп розгортання.

Клонувати все гілки з сервера

Швидше за все, ви це вже зробили, а гілки просто приховані. Ось команда, щоб показати їх всі:

Можна використовувати git checkout origin / імя_веткі, щоб подивитися на потрібну гілку. Або git checkout -b імя_веткі origin / імя_веткі, щоб створити локальну гілку, відповідну віддаленої.

Перейменувати локальну гілку

git branch -m oldname newname

бренди в інтерфейсігрупи розгортання. Групи завдань дозволяють визначити набір завдань, які ви можете додати в визначення збірок або випущені версії. Це корисно, коли вам потрібно використовувати одну і ту ж групу завдань в декількох збірках або випусках. Щоб допомогти вам відстежувати користувача групи завдань, тепер у вас є можливість переглядати збірку і випуск версій і груп завдань, які посилаються на вашу групу завдань.

Посилання на цільову групу. При спробі видалити групу завдань, на яку все ще посилаються, ви побачите попередження і посилання на цю сторінку. Внесення змін до групи завдань може бути ризикованим, тому що зміни відображені в усіх визначеннях, які використовують цю групу завдань. Коли ви створюєте концепцію і ітерації, ви можете опублікувати стабільну версію, і ви можете опублікувати групу завдань у вигляді превью-версії при її публікації - в разі надзвичайних змін.

Повернутися до будь-якого коммітов

Можна використовувати reset, як показано раніше, але це буде означати, що ви хочете назавжди повернутися до того стану, в якому ви були, а не просто подивитися на нього (для цього треба зробити checkout). Ідентифікатор коммітов повинен бути такий, як він прописаний у висновку команди git log.

git reset --hard ідентіфікатор_комміта

Ви також можете публікувати його як оновлену стабільну версію. Коли доступна нова основна версія групи завдань, редактор визначень попереджає вас про те, що існує нова версія. Якщо ця основна версія є версією попереднього перегляду, ви також побачите повідомлення, щоб спробувати. Якщо група завдань надходить з попереднього перегляду, визначення, які його використовують, автоматично оновлюються і переміщаються на цей основний канал.

Збереження групи завдань у вигляді чернетки. Публікація цільової групи як попередній перегляд. Хоча ви можете повторно використовувати кілька завдань в проекті проектної групи, ясно, що багаторазове створення набору завдань в різних проектах і облікових записах втомлює. Ми також дозволили розпаковувати розпаковані групи завдань для експорту в перший раз.

Ще раз повторимо, що це скасує всі поточні зміни, так що переконаєтеся, що це дійсно те, що вам потрібно. Або ж за допомогою --soft замість --hard.

Видалити подмодуль (submodule)

Створення подмодулей використовується досить рідко, але іноді вони все таки потрібні. Так що ось що вам потрібно:

git submodule deinit submodulename
git rm submodulename
git rm --cached submodulename
rm -rf .git / modules / submodulename

Підтримка декількох серверних конфігурацій

Група завдань експорту. Ввівши тепер множник змінної на стороні сервера, ви можете запускати той же набір завдань на етапі многоконфігураціі, який виконується паралельно. Кілька завдань налаштування без агента.

Просування змінних в завданні рукописного введення

Завдання рукописного введення тепер підтримує використання змінних в направляющем тексті, який відображається під час запуску, коли користувачі можуть перезапустити процес випущеної версії або відхилити її. Ви можете включити всі змінні, визначені і доступні в випущеної версії.

Перезаписати локальні файли під час git pull

Вам знову допоможе git reset:

git fetch --all
git reset --hard origin / master

Як додати порожню директорію в репозиторій?

Ніяк! Це просто не підтримується і вважається, що вам це не потрібно. Але є один трюк. Можна створити файл.gitignore в потрібній директорії з наступним змістом:

# Ігноруємо все в цій директорії
*
# Крім самого файла.gitignore
! .gitignore

Контроль випущених версій в середовищі на основі гілки джерела

Значення використовуються як в повідомленнях, так і в повідомленнях, відправлених користувачам. Завдання Ручне втручання. Діалогове вікно з повідомленням про те, що воно очікує втручання вручну. Версія випущеної версії може бути налаштована для автоматичного розгортання при створенні нової версії. Це зазвичай відбувається після успішної збірки ресурсу. Проте, вам може знадобитися розгорнути тільки збірки з певних рядків джерела, а не після успішної збірки.

Експорт вихідного, аналогічно "svn export"

Використовуйте git archive, наприклад так:

git archive --format zip --output /путь/к/файлу/файл.zip master

Скасувати всі зміни, крім тих, що вже додані в планований Комміт

git checkout -.

Створити нову гілку на сервері з поточної локальної гілки

git config --global push.default current
git push -u

Відновити віддалений файл

Спочатку потрібно знайти останній Комміт, де файл ще існував.

Наприклад, вам може знадобитися розгортання всіх збірок для розгортання в середовищах розробки і тестування, але тільки конкретна збірка, розгорнута в робочому середовищі. Раніше вам доводилося підтримувати дві версії випуску: одну для середовища розробки і тестування, а іншу для робочого середовища.

Це означає, що ви можете вказати випущені версії, які вписуються в окремі середовища при виконанні умов активації розгортання. У розділі «Тригери» в діалоговому вікні «Умови розгортання» виберіть артефакти, такі як гілка джерела і мітки збірки, які дозволяють нове розгортання в середовищі. Діалог умов розгортання.

Якщо використовується аутентифікація по паролю:

  1. $ Git clone https: // username: [Email protected]/opt/git/repository.git

Робота з гілками

Показати всі гілки:
  1. $ Git branch
Створити нову гілку:
  1. $ Git branch
Перейти в нову гілку:
  1. $ Git checkout
Створити нову гілку і перейти в неї:
  1. $ Git checkout -b
Видалити локальну гілку:
  1. $ Git branch -d
Видалити гілку з віддаленого сховища:
  1. $ Git push origin --delete

Робота з коммітов

Як видалити останній Комміт?

  1. $ Git reset --soft HEAD ^
Git How To. Глава 16. Скасування коммітов
Git How To. Глава 17. Видалення комміттов з гілки
Офіційна документація Git. Основи Git - Скасування змін

Як змінити останній Комміт?

  1. $ Git add new_file.txt
  2. $ Git commit --amend

Як змінити коментар до останнього коммітов?

  1. $ Git commit --amend
  2. $ Git commit --amend -m "Новий коментар"

Як об'єднати кілька коммітов?

  1. $ Git rebase -i HEAD ~ 3
Замість HEAD ~ 3 можна використовувати hash коммітов. Потрібно передати hash того коммітов, до якого потрібно все об'єднати (сплюснути).
Відкриється редактор зі списком коммітов, вгорі буде найстаріший Ком.
  1. pick 1111111 Commit 1 comment
  2. pick 2222222 Commit 2 comment
  3. pick 3333333 Commit 3 comment
Потрібно заменть pick на squash, щоб вийшло так:
  1. pick 1111111 Commit 1 comment
  2. squash 2222222 Commit 2 comment
  3. squash 3333333 Commit 3 comment
Далі потрібно зберегти файл і вийти. Буде знову буде відкритий текстовий редакторз усіма коментарями до коммітов. Потрібно відредагувати, зберегти і вийти. Після цих дій коммітов будуть об'єднані.

Як скасувати зміни в певному файлі і повернути його в стан, в якому він знаходився після останнього коммітов?

  1. $ Git checkout - file.txt

Як скасувати всі незафіксовані (незакоміченние) зміни?

  1. $ Git checkout

Як притримати деякі файли для наступного коммітов?

Припустимо, ви хочете закоммітіть зміни в деяких файлах, а зміни в інших файлах зафіксувати в наступному Ком. Тоді можна тимчасово видалити їх зі сховищ (unstage files), а потім знову додати.
  1. $ Git reset HEAD file.txt
Ця команда видалить файл з репозиторію, в старих коммітов він залишиться. Head вказує на останній Комміт в поточній гілці.

Якщо не вдається зробити push на віддалений репозиторій через те, що поточна версія сховища менше, ніж на віддаленому репозиторії

В цьому випадку можна зробити примусовий push.
  1. $ Git push -f origin master

злиття гілок

Як взяти з іншої гілки тільки деякі файли?

  1. $ Git checkout branchname - path / to / file.file

віддалені репозиторії

Висновок на екран інформації про віддаленому репозиторії

  1. $ Git remote show origin
На екран буде виведено, щось на зразок цього:
  1. * Remote origin
  2. Fetch URL: [Email protected]: /opt/git/test-project.git
  3. Push URL: [Email protected]: /opt/git/test-project.git
  4. HEAD branch: master
  5. Remote branch:
  6. master new (next fetch will store in remotes / origin)
  7. Local ref configured for "git push":
  8. master pushes to master (local out of date)

Додавання віддаленого сховища

  1. $ Git remote add origin [Email protected]: /opt/git/test-project.git