Який правильний спосіб скасувати перейменування в git, наприклад:
git mv file1 file2
Який правильний спосіб скасувати перейменування в git, наприклад:
git mv file1 file2
Відповіді:
Нерозважлива відповідь:
git mv file2 file1
Оновлення індексу як для старих, так і для нових шляхів автоматично.
Перевірте документацію git mv
git checkout .
це не працювало навіть з -f
опцією?
git checkout -- .
.
fatal: source directory is empty,
тільки git reset --hard
зробив роботу.
Якщо ви не зробили жодних інших змін (які ви хочете зберегти) з моменту останньої фіксації, ви можете це зробити
git reset --hard
git reset --hard
. Просто переміщення її назад здається мені більш безпечним варіантом.
git reset HEAD file2
зробив трюк для мене
У моєму випадку я перемістив цілу папку, потім зрозумів, що не повинен мати.
Мені дуже сподобалась відповідь @Dave Konopka, але я не мав особливого успіху з таким підходом (можливо, моя версія GIT (1.8.4)? Мої файли все ще показувались видаленими. У мене були інші зміни на стеку, які я не хотів програти (на жаль).
У мене був успіх у цьому:
git reset moved_folder
git checkout original_folder
Це залежить від того, що ви хочете досягти. Якщо ви хочете, щоб він виглядав так, ніби файл ніколи не переміщувався, тоді ви можете скинути (або відновити) до переміщення. Якщо ви не переймаєтесь історією, просто перенесіть її назад.
Якщо ви випадково перейменували велику кількість файлів і хочете повернутися туди, де ви почали, видаліть усі перейменовані файли, які відображаються як adds
під час git status
виклику.
Після того як ви видалите всі змінені файли, ви можете запустити git checkout -- *
для локального повернення оригінальних імен файлів.
git reset HEAD file2
git checkout -- file1
rm file2
Перша команда недостає файл2, але залишає її копію. Друга команда відновлює вихідний файл, а третя видаляє новий файл.
Трюк, який я використав, - це зробити скрипт git, щоб скасувати всі зміни (що включає відновлення файлів mv'd), а потім видалив скриньку з падінням сховища git.
git mv file2 file1