Пожалуйста помоги.
У меня всегда возникают трудности с отправкой моих изменений в существующий удаленный репозиторий, где номер версии новее. т. е. кто-то отправил в этот репозиторий после того, как я в последний раз вытащил.
Я использую ubuntu 14.04
, и netbeans
, и mercurial
, и meld
, и мой проект представляет собой приложение php, использующее структуру laravel.
мое текущее решение,
- сделать резервную копию моего локального репозитория;
- затем в моем первом локальном репозитории принудительно обновите тег
tip
; - получить последнюю версию в удаленном репозитории, используя первый локальный репозиторий;
- вытащить последнюю версию в удаленный репозиторий (я не знаю разницы между fetch и pull, если кто-то может пролить свет, я определенно был бы признателен);
- открытый сплав; сравнить два каталога репозитория (первый локальный репозиторий и резервную копию); тогда помните, какие файлы отличаются;
- в netbeans примените
alt
+shift
+f
(формат) в каждом из файлов, которые различаются, в обоих каталогах, чтобы я мог удалить ненужные пробелы, и я мог легко увидеть изменения (когда я снова сравниваю два каталога в объединении) с правильными отступами и более четкими разрывами строк; - затем откройте объединение, снова сравните два каталога репозитория, и на этот раз я теперь мог легко понять выполненные изменения;
- применить необходимые изменения к каждому репозиторию, пока они не будут равны друг другу (вы должны быть очень осторожны на этом шаге, так как модифицируется уже ваша резервная копия);
- зафиксируйте изменения первого локального репозитория. у которого
tip
соответствует последней версии в удаленном репозитории; - затем отправьте зафиксированные изменения.
Я не хочу продолжать использовать это решение, так как оно также требует, чтобы у вас был второй репозиторий резервных копий (другими словами, проблемы с емкостью хранилища). Пожалуйста, помогите мне найти другое решение.
Если я сделаю все по-другому, например, сначала вытащу последние изменения (мои коллеги) из удаленного репозитория: я получаю сообщение об ошибке:
abort: outstanding uncommitted changes
Если я сначала нажму: ошибка:
abort: push creates new remote heads on branch 'default'!
(did you forget to merge? use push -f to force)
то иногда, если я использую терминал, мне требуется слияние. и очень сложно объединиться в терминале, когда вы не можете контролировать, какие файлы вы собираетесь объединять первыми (терминал открывает инструмент сравнения объединений для каждого измененного файла в алфавитном порядке),
а иногда вам нужно сначала применить «Формат» к каждому файлу, чтобы легко понять цель выполненных изменений.
но если вы выйдете из слияния, будет считаться, что вы успешно объединили файлы (или нет? CMIIW.)