#git
#git
Вопрос:
У меня есть куча файлов, которые я переместил из одного места в другое, и я изменил их содержимое (90% изменений). Файлы перемещаются правильно git mv
, и git также определяет это как переименование.
Мой вопрос: возможно ли только добавлять и фиксировать перемещение без добавления изменений содержимого файлов?
У меня уже есть все эти локальные изменения, и я не хочу все переделывать.
Спасибо.
Комментарии:
1. Да, зафиксируйте после перемещения, а затем измените файлы
2. @UlysseBN да … это очевидно. Единственная проблема в том, что я уже внес изменения и не хочу их отбрасывать.
3. это может быть неверно, но посмотрите
git stash
, поможет ли. это действительно зависит от ситуации4. Не в вашем сценарии, нет. GIT не видит, что вы «переместили» файлы. Он просто видит, что содержимое (включая метаданные его пути) изменилось. Из того, что я вижу, невозможно зафиксировать метаданные без содержимого
5. @Dominik либо с помощью git stash, либо вообще без git (и просто скопируйте вставку за пределы вашего репозитория), если вам не нравится этот инструмент: каким-то образом сохраните свои изменения, затем перейдите к предыдущему фиксации, затем снова переместитесь, затем зафиксируйте, затем примените изменения.
Ответ №1:
Если вы переместили кучу файлов с помощью git mv
, а затем изменили эти файлы git add
, еще не запустив :
поэтапные изменения — это переименование без изменений.
Если это так: вы можете git commit
сразу же запустить.
Если git mv
его легко применить повторно (например: он состоит только из git mv dir1 dir2
), самый короткий способ — сохранить ваши изменения, запустить то же git mv
самое и зафиксировать, а затем вставить ваши изменения
git stash
git mv [what needs to be renamed]
git commit
git stash pop
Если git mv
действие немного сложнее, другой вариант :
-
сохраните выходные
git status -s
данные во временном файле :git status -s > ../renaming.txt
-
выполнить
git stash
, -
повторно примените список переименований, перечисленных во временном файле и зафиксируйте,
-
выполнить
git stash pop