Вам необходимо исправить 2 вопроса
1.) Возвратить неправильный "фейсбук" совершает что ты нажал к «ведущей» ветке восходящего репо.
Самый простой способ сделать это может заключаться в том, чтобы снова клонировать репо из восходящего потока в новый каталог. Использовать, например. gitk, чтобы увидеть, какие ошибки совершают в главной ветке, вернуть их и нажать на них. Теперь ваши коллеги счастливы, потому что неправильные вещи в репо исправлены.
Не используйте push -f, если вы и все ваши коллеги не понимаете полностью, что вы делаете. Вы можете потерять данные. Возвращение может выглядеть уродливым, но оно безопасно, даже если вы ошиблись с первой попытки.
2.) Исправьте свое собственное репо, чтобы ветки больше не смущались. Проще всего было бы забыть о старом репо и просто продолжить новый клон. Однако, если есть важные штампы или другие ветви, которые не были перенесены в любой восходящий поток, вам необходимо отремонтировать настройку своего старого репо. Самый простой способ - отредактировать .git/config напрямую. Возьмите чистое репо, у которого не было таких аварий, как образец, если вы не знаете, как это должно выглядеть.
Лично я часто предпочитаю git fetch
над git pull
. Я не думаю, что git fetch
может потерпеть неудачу. Git pull делает выборку и слияние в одной команде, иногда просто лучше делать одну из них В удаленных филиалах удаленных филиалов/origin/branchname у вас есть точные снимки того, что находится в удаленном репо во время последнего выборки. Они доступны только для чтения, поэтому вы не можете их испортить. (Они называются удаленными, но они не хранятся удаленно, что часто неправильно понимается). Ваши местные филиалы читаются/записываются. Если кто-то прикручен, вы можете даже удалить его и проверить его снова. Git создаст новую локальную ветку из удаленной ветви. (Если вы не хотите удалять ветку, если она содержит важные фиксации, которые никогда не были нажаты)
Прежде чем выполнять сложные операции с вашим репо, которое вы не совсем понимаете, резервная копия может быть хорошей идеей , особенно если у вас есть то, что никогда не толкалось.
Я сам использую только git push
(без каких-либо аргументов), поэтому такого путаницы не может быть. (За исключением того, что я первый раз нажимаю новую ветку.) Кроме того, я использую только git fetch
вместо git pull
, поэтому он всегда удался, и я могу проверить, что сделали другие. (но тогда мне нужно объединить удаленные ветви, если я сохраню для них локальный, там может произойти подобное смешение, но все же оно будет только локальным и может быть удалено без нарушения других)
Дополнение: В принятом ответе в Git Pull Doesn't Do A Git Fetch приведены дополнительные сведения о push/fetch/pull и о том, как (а) использовать их.
Это только вы с доступом? – exussum
Нет, другие тоже. – dtgee
когда вы делаете 'git pull', он обновляет facebook и позволяет вам нажать? – exussum