Якщо ситуація нагальна , і ви просто хочете зробити те, про що запитував, швидко і брудно , припустивши, що ваш проект знаходиться в каталозі, який називається, наприклад, "мій проект":
ШВИДКО І БУДНО : залежно від обставин, швидке та брудне може насправді бути дуже ДОБРИМ. Моє рішення тут - НЕ безповоротно замінювати файли, що є у вашій робочій директорії, файлами, витягнутими / витягнутими з глибини сховища git, що ховаються під вашим. багато. ВИ НЕ МОЖЕТЕ РОБИТИ ТАКЕ ГЛИБОТНІ МОРСІ, ЩО ВІДКРИТИ, що може виявитися катастрофічною ситуацією, і спроба зробити це без достатнього досвіду може виявитися фатальним .
Скопіюйте весь каталог і назвіть його чимось іншим, наприклад "мій проект - копіюйте". Якщо припустити, що ваші файли сховища git ("repo") знаходяться в каталозі "мій проект" (місце за замовчуванням для них, в каталозі під назвою ".git"), тепер ви скопіювали як робочі файли, так і файли репо.
Зробіть це в каталозі "мій проект":
.../my project $ git reset --hard [first-4-letters&numbers-of-commit's-SHA]
Це поверне стан репо в "моєму проекті" до того, яким він був, коли ви здійснили виконання ("фіксація" означає зйомку робочих файлів). Усі зобов’язання з тих пір назавжди будуть втрачені в розділі "мій проект", АЛЕ ... вони все одно будуть присутні в репо в розділі "мій проект - копія", оскільки ви скопіювали всі ці файли - включаючи файли під ... /. Git /.
Потім у вашій системі є дві версії ... ви можете вивчити або скопіювати або змінити файли, що цікавлять вас, або будь-що інше, з попереднього комітету. Ви можете повністю відкинути файли в розділі "мій проект - копіювати", якщо ви вирішили нову роботу, оскільки відновлена фіксація нікуди не пішла ...
Очевидна річ, якщо ви хочете продовжувати стан проекту, не фактично відкидаючи роботу, оскільки ця вилучена фіксація - це перейменування вашого каталогу знову: Видаліть проект, що містить отриману комісію (або дайте їй тимчасову назву) та перейменуйте свій " мій проект - скопіюйте "каталог назад у" мій проект ". Тоді, можливо, спробуйте зрозуміти деякі інші відповіді тут, і, ймовірно, зробіть ще один вчинок досить скоро.
Git - це геніальне творіння, але абсолютно ніхто не в змозі просто "забрати його на льоту": також люди, які намагаються пояснити це занадто часто припускають попередні знання інших VCS [Системи управління версіями] і заглиблюються занадто глибоко далеко занадто рано, і вчиняти інші злочини, як-от використання взаємозамінних термінів для "перевірки" - способами, які іноді виглядають майже розрахованими на те, щоб заплутати новачка.
Щоб врятувати себе від великого стресу, вчіться з моїх шрамів. Доводиться читати книгу про Git - я б рекомендував "Контроль версій з Git" . Зробіть це швидше, ніж пізніше. Якщо це так, майте на увазі, що значна частина складності Git пов'язана з розгалуженням та повторним зануренням: ви можете пропустити ці частини в будь-якій книзі. З вашого запитання немає причин, чому люди повинні засліплювати вас наукою .
Особливо, якщо, наприклад, це відчайдушна ситуація і ти новачок з Git!
PS: Ще одна думка: На даний момент насправді досить просто зберігати Git repo в каталозі, відмінному від того, у якому є робочі файли. Це означає, що вам не доведеться копіювати весь сховище Git, використовуючи вищезгадане швидке та брудне рішення. Дивіться відповідь Фріер, використовуючи --separate-git-dir
тут . Однак будьте попереджені : якщо у вас є сховище "окремого каталогу", яке ви не копіюєте, і ви робите жорсткий скидання, всі версії, що послідують після здійснення скидання, будуть втрачені назавжди, якщо у вас немає, як ви абсолютно повинні, регулярно створюйте резервні копії вашого сховища, бажано, в Хмарі (наприклад, Google Drive ) серед інших місць.
З цього приводу "резервного копіювання до хмари" наступним кроком є відкриття рахунку (звичайно безкоштовно) у GitHub або (що краще, на мій погляд), GitLab . Потім ви можете регулярно виконувати git push
команду, щоб зробити ваше репортаж у хмарі "належним чином". Але знову ж таки, говорити про це може бути занадто багато занадто рано.