Обновление: обратите внимание, что в настоящее время принятый ответ увековечивает распространенное недоразумение о поведении git push
, которое не было исправлено, несмотря на комментарий, указывающий на это.
Ваше резюме того, что такое пульты - например, псевдоним для URL репозитория - является правильным.
Так почему же URL не git: //git@github.com/peter/first_app.git, но в другом синтаксисе - какой это синтаксис?Почему это должно заканчиваться на .git?Я пытался не использовать .git в конце, и это тоже работает.Если нет .git, что еще это может быть?Похоже, что git у новичка - это учетная запись пользователя на сервере git?
Два упомянутых вами URL указывают, что следует использовать два разных транспортных протокола.Первый, начинающийся с git://
, относится к протоколу git, который обычно используется только для доступа к репозиториям только для чтения.Другой, git@github.com:peter/first_app.git
, является одним из различных способов указания доступа к хранилищу по SSH - это «синтаксис в стиле scp», описанный в документации .То, что имя пользователя в синтаксисе стиля scp - git
, объясняется тем, как GitHub работает с идентификацией пользователей - по сути, это имя пользователя игнорируется, а пользователь идентифицируется на основе пары ключей SSH, которую они использовали для аутентификации.
Что касается многословия git push origin master
, вы заметили, что после первого нажатия вы можете просто сделать git push
.Это происходит из-за ряда трудных для запоминания, но в целом полезных значений по умолчанию:)
- Если пульт не указан, пульт настроен для текущей ветви (в
remote.master.url
в вашемслучай) используется.Если это не настроено, то используется origin
. - Если не указан "refspec" (например,
master
, master:my-experiment
и т. Д.), Тогда git по умолчанию отправляет каждую локальную ветвь, которая имеетто же имя, что и ветка на пульте.Если у вас просто есть ветвь с именем master
, общая между вашим хранилищем и удаленным, это будет то же самое, что подтолкнуть ваш master
к удаленному master
.
Лично,так как у меня, как правило, много веток тем (и часто несколько пультов), я всегда использую форму:
git push origin master
..., чтобы избежать случайного нажатия на другие ветки.
В ответна ваши комментарии к одному из других ответов мне кажется, что очень эффективно изучают git сверху вниз - вы обнаружили, что настройки по умолчанию работают, и ваш вопрос задает вопроспочему;) Если быть более серьезным, git может использоваться по существу так же просто, как SVN, но знание немного об удаленных устройствах и ветвях означает, что вы можете использовать его гораздо гибче, и это действительно может изменить способ вашей работылучшее.Ваше замечание по поводу семестрового курса заставляет меня задуматься над тем, что Скотт Чакон сказал в интервью подкаста: студентов учат всем видам базовых инструментов в области компьютерных наук и разработки программного обеспечения, но очень редко - контролю версий.Распределенные системы контроля версий, такие как git и Mercurial, теперь настолько важны и настолько гибки, что стоило бы преподавать на них курсы, чтобы дать людям хорошую основу.
Я считаю, что с git
этоКривая обучения абсолютно стоит того, чтобы работать с большим количеством веток тем, легко объединять их, а также перемещать их между различными репозиториями, что невероятно полезно, как только вы станете уверены в системе.Жаль только, что:
- Первичную документацию по git так сложно разобрать новичкам.(Хотя я бы поспорил, что если вы в Google почти для любого git-вопроса, в настоящее время подойдет полезный учебный материал (или ответы Stack Overflow :)).)
- В git есть несколько странных вариантов поведения, которые трудноизменить сейчас, потому что многие сценарии могут полагаться на них, но они вводят людей в заблуждение.