Відповіді:
Використовуйте 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не вдалося, це марно витрачати зусилля.