Відповіді:
Використовуйте git checkout <sha1>
для перевірки конкретного комітету.
git log
показує лише першу комісію зараз, чи можу я дізнатися ша1 наступного комітету?
git log --oneline
та вставити результат у текстовий файл для довідок (скорочені ша1 суми, які він надає, гарантовано є унікальними). Ще один варіант, якщо ваша історія лінійна - це визначити, скільки комісій існує від першого введення master
та використання git checkout master~543
(якщо є 543 коміти), то git checkout master~542
і т.д.
Для переходу до певної версії / фіксації виконайте наступні команди. ХАШ-КОД, з якого ви можете отриматиgit log --oneline -n 10
git reset --hard HASH-CODE
Примітка. Після скидання на певну версію / фіксацію ви можете запустити git pull --rebase
, якщо ви хочете повернути всі відхилені комісії.
reset
не просто оформити певну точку на графіку, вона також перемістить поточну перевірену гілку
reset
, всі ваші очікувані зміни відхиляються.
git pull --rebase
працює лише в тому випадку, якщо у вас є пульт дистанційного керування для репо-репортажу, і він актуальний.
Ви можете отримати графічний вигляд історії проекту за допомогою таких інструментів gitk
. Просто запустіть:
gitk --all
Якщо ви хочете оформити певну галузь:
git checkout <branch name>
Для конкретного комітету використовуйте хеш SHA1 замість назви гілки. (Див. « Деревєти» у книзі спільноти Git , яку добре читати, щоб побачити інші варіанти навігації по вашому дереву.)
git log
має цілий набір опцій для відображення детальної чи зведеної історії.
Я не знаю простий спосіб рухатися вперед в історії фіксації. Проекти з лінійною історією, мабуть, не все так часто. Ідея "ревізії", як у вас із SVN або CVS, не відображає все так добре в Git.
Використовуючи ключ SHA1 комітету, ви можете зробити наступне:
Спочатку знайдіть потрібну фіксацію для певного файлу:
git log -n <# commits> <file-name>
Це, виходячи з вашого <# commits>
, генерує список комітетів для певного файлу.
Порада: якщо ви не впевнені в тому, що робить ви шукаєте, хороший спосіб з'ясувати це з допомогою наступної команди: git diff <commit-SHA1>..HEAD <file-name>
. Ця команда покаже різницю між поточною версією комісії та попередньою версією комітету для конкретного файлу.
ПРИМІТКА: ключ SHA1 комітету відформатований у git log -n
списку як:
вчинити
<SHA1 id>
По-друге, оформити бажану версію:
Якщо ви знайшли потрібну коммісію / версію, яку ви хочете, просто скористайтеся командою: git checkout <desired-SHA1> <file-name>
Це дозволить розмістити версію файлу, який ви вказали, в області постановки. Щоб вивести його з області постановки, просто скористайтеся командою:reset HEAD <file-name>
Щоб повернутись туди, де вказано віддалене сховище, просто скористайтеся командою: git checkout HEAD <file-name>
Я опинився в ситуації, коли у нас є головна гілка, а потім ще одна гілка під назвою 17.0, а всередині цього 17.0 з'явився хеш-код, не кажіть "XYZ" . І замовник отримує збірку до цієї версії XYZ. Тепер ми натрапили на помилку, і це потрібно вирішити для цього замовника. Тож нам потрібно створити окрему гілку для цього клієнта до цього хеша "xyz". Отже ось як я це зробив.
Спочатку я створив папку з таким іменем клієнта на своїй локальній машині. Скажіть ім'я клієнта "AAA", коли ця папка створена, видайте наступну команду всередині цієї папки:
Одним із способів було б створити всі коміти, коли-небудь зроблені для виправлень. перевірити початкову комісію, а потім застосувати патчі в порядку після прочитання.
використовувати git format-patch <initial revision>
і потім git checkout <initial revision>
. ви повинні отримати купу файлів у свого директора, починаючи з чотирьох цифр, які є виправленнями.
коли ви закінчите читати свою редакцію, просто зробіть те, git apply <filename>
що має виглядати
git apply 0001-*
і рахувати.
Але мені дуже цікаво, чому ви просто не хочете читати самі патчі? Будь ласка, опублікуйте це у своїх коментарях, бо мені цікаво.
інструкція з git також дає мені це:
git show next~10:Documentation/README
Показує вміст файлу Documentation / README таким, яким вони були поточні в 10-му останньому комітеті наступної гілки.
Ви також можете ознайомитись із тим, git blame filename
що дає вам список, де кожен рядок асоціюється з автором хеш-файлів.
Щоб дійти до конкретного скоєного коду, вам потрібен хеш-код цього коміта. Цей хеш-код можна отримати двома способами:
git log
і перевірте свої останні комісії в цій гілці. Він покаже вам хеш-код вашої фіксації та повідомлення, яке ви залишили під час введення коду. Просто скопіюйте та зробітьgit checkout commit_hash_code
Після переходу до цього коду, якщо ви хочете працювати над ним та вносити зміни, вам слід зробити іншу гілку git checkout -b <new-branch-name>
, інакше зміни не збережуться.
git log -n1
. Але якщоgit checkout
не вдалося, це марно витрачати зусилля.