Использование NetBeans 8.1 в macOS Mojave для проекта PHP, который размещен в частном репозитории GitHub. Допустим, он называется foo-repo
.
Я настроил свойства своего проекта в NetBeans, чтобы он мог Pu sh и Pull из foo-repo
. Он подключается нормально, и об ошибках не сообщается.
В репо 3 филиала: master
, devA
, devB
. Я работаю в ветке devA
локально.
Когда я первоначально запускаю NetBeans и хочу обновить свои локальные файлы до ветви master
, я щелкаю правой кнопкой мыши по проекту и go до Git> Удаленное> Вытащить. Если я проверю master -> origin/master
, он скажет:
Ветвь origin/master
будет объединена с текущей веткой devA
.
Пока все хорошо. Кажется, это работает.
Однако, если я редактирую и сохраняю файлы локально , но не фиксирую или не извлекаю sh их У меня проблемы. Есть случаи, когда я хочу «сбросить» мои локальные файлы обратно к тому, что присутствует на master
. В этом случае я go через вышеописанный процесс снова. Похоже, что NetBeans подключается к репо без сообщений об ошибках. Но ни один из моих локальных файлов, которые я редактировал / сохранял, не показывает содержимое ветки master
. Вместо этого они показывают внесенные мной изменения, которые мне больше не нужны.
В качестве примера, скажем, я запускаю NetBeans и выполняю первоначальное извлечение. У меня есть файл foo.php
, который содержит это:
$foo = 'bar';
Допустим, я редактирую его следующим образом:
$foo = 'xyz';
$newVar = 123;
Я сохраняю этот файл локально в NetBeans , но не передайте или закажите sh в репозиторий GitHub .
Я закрываю все свои открытые файлы.
Когда я затем делаю Git> Удаленный> Потяните и проверяйте master -> origin/master
, он по-прежнему говорит:
Ветвь origin/master
будет объединено с текущей веткой devA
.
В нижней панели задач есть сообщение о том, что оно извлекается из foo-repo
.
Но когда я open foo.php
Я вижу это:
$foo = 'xyz';
$newVar = 123;
Это не то, что включено master
.
Это ошибка / проблема в NetBeans? Или это неправильный процесс возврата в состояние ветки master
с использованием git?
Правка - кто-то ответил, сказав
Вы не фиксируете измененный файл ... так что файл изменен, и на нем нет встроенной ревизии .... тогда вы запускаете pull. Тяга работает нормально, потому что нет никаких изменений от мастера, который изменяет файл. Если при касании файла произошли изменения в мастере, git будет его кашлять и предупредит, что операция перезапишет ваши изменения и сохранит sh ваши изменения или зафиксирует их.
Зачем мне фиксировать файл, содержащий работу, которую я не хочу в репо? Если одна из целей использования git состоит в том, чтобы перевести файлы в известное состояние, то мне нужно состояние, которое находится на master
, и ветвь, в которой я хочу содержимое, существует (devA
). Может ли git не справиться с этим?
Точно так же предложение использования git checkout foo.php
хорошо, если вы только изменили foo.php
. Что если вы изменили несколько файлов, закрыли их и не можете вспомнить имена файлов? Все это кажется нелогичным.