Файл, который вы создали, не был помечен или заархивирован, поэтому он не был отслежен. Не отслеживаемые файлы еще не принадлежат какой-либо ветви (-ям);они существуют в вашем рабочем дереве и остаются там, когда вы переключаетесь с ветви на ветку.
(Чтобы полностью понять это, может быть полезно ознакомиться с тремя основными областями хранения в git - рабочим деревом, индексом (иногда называемый промежуточной областью) и базой данных. Детальное описание этого вопроса было бы неуместным для ответа на этот вопрос, но я рекомендую прочитать эту тему.)
Есть слово предупрежденияэто идет с этим: файл, который передан в одной ветви, мог бы не существовать в другой ветви. Например, если вы вернетесь к newBranch
и подтвердите свой файл
git checkout newBranch
git add example.txt
git commit
, теперь example.txt
существует в newBranch
, но не в master
. Если вы извлечете master
, файл исчезнет, как вы и ожидали.
Это означает, что если на master
вы создадите еще один example.txt
(в том же каталоге, чтобы путь был точното же самое), этот новый файл не отслеживается, даже если тот же путь относится к существующему, зафиксированному файлу в другой ветви.
Если вы затем попытались оформить заказ на newBranch
, git должен отказаться с предупреждением о том, что у вас естьданные, которые будут потеряны при проверке.
На самом деле это всего лишь один особый случай "попытки изменить ветки с помощью незафиксированных изменений", но стоит знать об этой текущей задаче.