Как предотвратить удаление локальных файлов в Git pull - PullRequest
2 голосов
/ 24 марта 2019

Не могу найти мою проблему, поэтому я решил спросить.

Я и другой человек работаем над этим репо.Мой локальный клон обновлен.

Мой партнер удаляет файл 'example.txt', фиксирует и передает его.

Я прихожу на следующий день, делаю статус git (вверхна сегодняшний день), то дерьмо тянуть.Он удаляет файл «example.txt» из моего локального репозитория.

Проблема в том, что мне нужен этот файл, и мой партнер случайно удалил его.

Как предотвратить это в будущем?Есть ли способ заставить git pull предупредить меня, прежде чем он что-то удалит?

Итак, я попытался сначала выполнить git fetch, а затем git status, но это не показывает, что я собираюсь удалитьфайл, если я сливаюсь.

Ответы [ 2 ]

0 голосов
/ 24 марта 2019

Вы можете показать все различия между вашим местным филиалом, скажем, master ветвь и удаленная master ветвь после выполнения git fetch вот так:

$ git diff ...origin/master
diff --git a/example.txt b/example.txt
deleted file mode 100644
index e69de29..0000000

На данный момент у вас есть файл example.txt на вашем master, но он будет быть удаленным, когда вы делаете git merge. По привычке я тоже часто делаю что перед окончательным объединением извлеченных изменений в мою локальную ветку.

Однако, судя по тому, как вы описываете проблему, кажется, что вы Я не совсем понимаю, как работает Git. Если другой пользователь совершил удаление файла и отправка в удаленную ветку этой операции не может быть отменено, и вы не можете игнорировать это - вам придется принять которые меняются в вашей локальной ветке раньше или позже подталкивая ваши изменения к пульту. Если другой пользователь удалил это непреднамеренно файл, вы можете восстановить его и отправить его на удаленный, в идеале в отдельном коммите или отменить коммит, который другой пользователь толкнул.

0 голосов
/ 24 марта 2019

Поскольку git pull - это, в основном, git fetch, за которым следует git merge, это Интересно посмотреть это сравнение этих двух (fetch x merge), а затем взглянуть на эту стратегию о том, как просмотреть слияния и, следовательно, что-то, что может помочь вы pull безопасно используя git.

...