2016-03-31 2 views
1

У меня есть две ветви Git, A и B. Я использую Git для развертывания изменений с сервера 1 на сервер 2.Git не реагирует на изменения Branch

Ответвление А имеет определенное количество файлов. В ветке B есть дополнительный каталог (foo) с большим количеством файлов и изменение одного из файлов (bar) вне дополнительного каталога. У меня есть ветвь А локально и удаленная ветвь/А. То же самое для ветви B и происхождения ветви/B.

На сервере 1, если я проверяю ветку A Я вижу исходное содержимое в строке, и я не вижу дополнительную директорию, foo. Если я выхожу в ветку ветви B и добавляется дополнительная директория, появляется foo.

Отлично. Сервер 1 работает.

Проблема заключается в сервере 2. Если я проверяю ветку, то строка меняется, но дополнительная папка не исчезает, как на сервере 1. На сервере 2, если я изменяю строку ветви B, также изменяется, а дополнительный каталог , foo все еще присутствует. Поэтому при суммировании, когда я развертываю сервер 2 через git, происходят только изменения внутри файла, и добавление/удаление файлов не происходит.

Является ли это нормальным поведением для git или должны исчезнуть файлы, когда я проверяю ветку A?

Благодаря

+0

все ваши изменения на сервере 1 совершены и нажаты? вы выполнили git pull на сервере 2? –

+0

Я делаю выборку и проверку, но когда я делаю попытку после проверки ветки B, я получаю: $ git pull Информация о текущей ветке отсутствует. Укажите, с какой веткой вы хотите слиться. См ГИТ-тянуть (1) для деталей мерзавец тянуть Если вы хотите установить отслеживание информации для этой отрасли Вы можете сделать это с: мерзавец ветви --set-ближней к = происхождения/ б – splunge

+0

Вы использовали слово «развернуть»: по моему опыту, много времени, когда люди говорят «развернуть [на сервере]», они подразумевают, что репозиторий на сервере один создан с '--bare' и что есть post-receive, который делает что-то особенное на этом сервере. Тем не менее, вы говорите так, как будто вы входите на сервер и выполняете обычные команды дерева работы, как если бы это был * not * a '--bare' репозиторий. Итак, я не уверен, какова ваша фактическая установка. Это может помочь, если вы продемонстрировали полную последовательность команд, которые создали эти репозитории и которые вы используете сейчас. – torek

ответ

1

Проблема на сервере 2. Если я проверка расшириться бар изменения, но дополнительный каталог, бар не исчезает, как это происходит на сервере 1

Это точно, как git ведет себя, как только вы проверяете ветвь, содержимое рабочего каталога обновляется содержимым ветки.

Это целая точка позади ветвей. Вы можете работать с другим контентом.

Как вы еще это принимаете? Каждый раз, когда вы проверяете другую ветку, проверяете все файлы во всем хранилище?

Его единственная проверка содержания данной ветки и обновление рабочего каталога.

+0

Я не понимаю, что вы имеете в виду. Удаляет ли git и добавляет файлы на основе разных ветвей или просто изменяет содержимое файлов? Я ожидаю, что он будет добавлять и удалять файлы на основе состояния фиксации конкретной ветки. – splunge

+0

Прочтите это, и как только вы это сделаете, объясните, это даст вам лучшую картину. http://stackoverflow.com/questions/34519665/how-to-move-head-back-to-a-previous-location/34519716#34519716 – CodeWizard

+0

https://git-scm.com/book/no-nb/ v1/Git-Branching-What-a-Branch-Is – CodeWizard

Смежные вопросы