Как может я контроль ГЛАВНАЯ версия моего удаленного ответвления / ответвления отслеживания

Я также посмотрел на проект кода Google и мерзавца repo. Я держался далеко от проекта кода Google из-за очевидного багажа, который пришел в необходимых проектах. Я закончил тем, что создал пользовательские реализации по мере необходимости для адаптации стандартного Java API. Можно найти грубое описание моего решения в эти группа разработчиков андроида. Это - 4 коротких, легко протестированные классы

8
задан hap497 30 September 2009 в 23:13
поделиться

2 ответа

Git не имеет понятия о получении отдельного файла. Он всегда перемещает коммиты по сети.

После того, как вы выполнили git clone какого-либо удаленного репозитория, вы можете git checkout remotename / branch , чтобы установить последние версии файлов на эта ветка зарегистрирована в вашей рабочей копии. Если вы хотите их изменить, вы должны git checkout -b remotename / branch , чтобы запустить локальную ветвь. Это может быть лучше сделано как

git branch --track mybranchname remotename/branchname
git checkout mybranchname

, чтобы ваша локальная ветвь «отслеживала» удаленную ветку и по умолчанию использовала отправку и извлечение из этой ветки.

4
ответ дан 5 December 2019 в 08:24
поделиться

Во-первых, примечание: удаленный репозиторий может иметь более одной ветки; также HEAD означает (для локальной разработки и локальных ветвей) текущую извлеченную ветку, а для удаленной ветки удаленного отслеживания (символическая ссылка) удаленный / HEAD означает ветвь по умолчанию на удаленном сервере. Не существует такого понятия, как «ГОЛОВА филиала»; HEAD - это указатель на ветвь (или иногда на фиксацию).

Во-вторых, Git работает (как Novelocrat ) на уровне всего дерева (все файлы в репозитории). В Git вы проверяете ветку (хотя вы также можете проверить версию файла из какой-то ветки в рабочий каталог, это менее сложная операция).


В Git вы можете создать новую фиксацию только поверх некоторой локальной ветки. Вы не можете создавать коммиты непосредственно в ветках удаленного отслеживания, поскольку они предназначены для отслеживания ветвей удаленного репозитория (и вы потеряете свою работу при извлечении).

Поэтому просто " git checkout origin " (при условии, что удаленный объект называется origin ), который является ярлыком для « git checkout origin / HEAD », который обычно является « git checkout origin / master », проверяет состояние ветки удаленного отслеживания ] в безымянную ветку, так называемую отдельную HEAD. Это хорошее решение, если вы хотите только видеть / просматривать состояние ветки удаленного отслеживания.

Если вы используете « git checkout --track origin / master », будет создана локальная ветка master , который предназначен для отслеживания (отслеживания) ветки удаленного отслеживания origin / master . Обратите внимание, что git-clone автоматически устанавливает такую ​​локальную ветвь (обычно master ) для ветки по умолчанию ( origin / HEAD ) удаленного origin (обычно origin / master ), поэтому вам не придется этого делать. Затем просто " git pull ", когда из ветки master будет извлекать (при необходимости), и попытайтесь объединить ваши локальные изменения с изменениями в соответствующей ветке в удаленном репозитории. Если бы не было изменений в удаленном состоянии, это "актуальное" состояние, и ваш локальный филиал не изменится; если в вашей локальной ветке не было изменений, но они были в удаленной, то локальная ветка просто переводится в состояние ветки удаленного отслеживания, что называется «быстрой перемоткой вперед». Вы можете думать о " git pull " здесь как о очень, очень приблизительный эквивалент « svn update ».

Вы также можете заставить локальную ветвь вернуться к состоянию ветки удаленного отслеживания с помощью « git reset --hard происхождение ". Обратите внимание, что - hard здесь означает принудительную перезапись рабочего каталога, поэтому любые незавершенные изменения будут потеряны! Используйте с осторожностью.

Наконец, если вы хотите извлечь отдельный файл из ветки удаленного отслеживания (т.е. иметь версию файла в рабочем каталоге, как в ветке удаленного отслеживания), вы можете просто используйте форму git-checkout 'pathspec', а именно " git checkout origin - file ". Если вы хотите только увидеть, как файл выглядит в ветке удаленного отслеживания, используйте « git show origin: path / to / file ».

HTH

Вы также можете принудительно перемотать локальную ветвь в состояние ветки удаленного отслеживания с помощью « git reset --hard origin ». Обратите внимание, что - hard здесь означает принудительную перезапись рабочего каталога, поэтому любые незавершенные изменения будут потеряны! Используйте с осторожностью.

Наконец, если вы хотите извлечь отдельный файл из ветки удаленного отслеживания (т.е. иметь версию файла в рабочем каталоге, как в ветке удаленного отслеживания), вы можете просто используйте форму git-checkout 'pathspec', а именно " git checkout origin - file ". Если вы хотите только увидеть, как файл выглядит в ветке удаленного отслеживания, используйте « git show origin: path / to / file ».

HTH

Вы также можете принудительно перемотать локальную ветвь к состоянию ветки удаленного отслеживания с помощью « git reset --hard origin ». Обратите внимание, что - hard здесь означает принудительную перезапись рабочего каталога, поэтому любые незавершенные изменения будут потеряны! Используйте с осторожностью.

Наконец, если вы хотите извлечь отдельный файл из ветки удаленного отслеживания (т.е. иметь в рабочем каталоге версию файла, как в ветке удаленного отслеживания), вы можете просто используйте форму "pathspec" команды git-checkout, а именно " git checkout origin - file ". Если вы хотите только увидеть, как файл выглядит в ветке удаленного отслеживания, используйте « git show origin: path / to / file ».

HTH

Обратите внимание, что - hard здесь означает принудительную перезапись рабочего каталога, поэтому любые незавершенные изменения будут потеряны! Используйте с осторожностью.

Наконец, если вы хотите извлечь отдельный файл из ветки удаленного отслеживания (т.е. иметь в рабочем каталоге версию файла, как в ветке удаленного отслеживания), вы можете просто используйте форму "pathspec" команды git-checkout, а именно " git checkout origin - file ". Если вы хотите только увидеть, как файл выглядит в ветке удаленного отслеживания, используйте « git show origin: path / to / file ».

HTH

Обратите внимание, что - hard здесь означает принудительную перезапись рабочего каталога, поэтому любые незавершенные изменения будут потеряны! Используйте с осторожностью.

Наконец, если вы хотите извлечь отдельный файл из ветки удаленного отслеживания (т.е. иметь версию файла в рабочем каталоге, как в ветке удаленного отслеживания), вы можете просто используйте форму git-checkout 'pathspec', а именно " git checkout origin - file ". Если вы хотите только увидеть, как файл выглядит в ветке удаленного отслеживания, используйте « git show origin: path / to / file ».

HTH

чтобы иметь в рабочем каталоге версию файла, как в ветке удаленного отслеживания), вы можете просто использовать форму 'pathspec' в git-checkout, а именно « git checkout origin - file ». Если вы хотите только увидеть, как файл выглядит в ветке удаленного отслеживания, используйте « git show origin: path / to / file ».

HTH

чтобы иметь в рабочем каталоге версию файла, как в ветке удаленного отслеживания), вы можете просто использовать форму 'pathspec' в git-checkout, а именно " git checkout origin - file ". Если вы хотите только увидеть, как файл выглядит в ветке удаленного отслеживания, используйте « git show origin: path / to / file ».

HTH

16
ответ дан 5 December 2019 в 08:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: