Я также посмотрел на проект кода Google и мерзавца repo. Я держался далеко от проекта кода Google из-за очевидного багажа, который пришел в необходимых проектах. Я закончил тем, что создал пользовательские реализации по мере необходимости для адаптации стандартного Java API. Можно найти грубое описание моего решения в эти группа разработчиков андроида. Это - 4 коротких, легко протестированные классы
Git не имеет понятия о получении отдельного файла. Он всегда перемещает коммиты по сети.
После того, как вы выполнили git clone
какого-либо удаленного репозитория, вы можете git checkout remotename / branch
, чтобы установить последние версии файлов на эта ветка зарегистрирована в вашей рабочей копии. Если вы хотите их изменить, вы должны git checkout -b
, чтобы запустить локальную ветвь. Это может быть лучше сделано как
git branch --track mybranchname remotename/branchname
git checkout mybranchname
, чтобы ваша локальная ветвь «отслеживала» удаленную ветку и по умолчанию использовала отправку и извлечение из этой ветки.
Во-первых, примечание: удаленный репозиторий может иметь более одной ветки; также 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