Если вы используете пространства имен, вы должны включить пространство имен с классом.
echo constant('My\Application\ThingClass::ThingConstant');
Если файл не отслеживается, то в Git нет записей о разнице в содержании этого файла между ветвями. Если этот файл должен быть частью вашего хранилища в этой ветке, вы должны зафиксировать файл или, по крайней мере, подготовить его для фиксации и использования git stash
. Если вы спрятаны, вы можете git pop
вернуть файл обратно в индекс, когда вернетесь к branch-1
.
Хотя я согласен с ответом Джоша Густа, вот более ориентированный на Visual Studio подход:
Кажется, что добавляемый вами файл находится вне папок, которые Git может отслеживать для вашего решения. Чтобы определить, что это, вам нужно найти папку .git - это скрытая папка, поэтому убедитесь, что вы можете просматривать скрытые папки в проводнике . Обычно вы можете щелкнуть правой кнопкой мыши свое решение в обозревателе решений и выбрать Открыть папку в проводнике файлов в контекстном меню. Оказавшись там, вы должны увидеть папку .git, если ваше решение находится под контролем исходного кода Git. Посмотрите путь к папке / файлу к папке .git, и это корень Git. Вооружившись этой информацией, вы должны убедиться, что любой добавляемый вами файл добавляется либо в эту корневую папку, либо в одну из ее подпапок. Основываясь на том, что вы описываете, вы добавляете файл, который находится выше - и, таким образом, вне - корня Git вашего решения, и в этом случае этот добавленный файл не может быть отслежен.