Git не обрабатывает никакой авторизации. Как это работает, вы можете просто изменить свою личность, используя аргумент git config
или --author
, чтобы делать коммиты от имени того, кого вы хотите. Эти коммиты останутся локальными на вашем компьютере, пока вы не решите их отправить.
Удаленные серверы часто выбирают какую-либо аутентификацию. Чаще всего это делается с использованием протокола SSH. Кроме того, многие добавляют уровень авторизации, который ограничивает доступ к репозиториям. Например, на GitHub вы можете отправлять только те репозитории, которыми владеете или к которым у вас есть явный доступ для записи.
Однако этот контроль доступа применяется только к акту отправки изменений. Поэтому, если у вас есть доступ к репозиторию, вы можете отправлять любые коммиты, какие хотите, с любым автором, которого хотите. Возможно, что провайдеры добавляют проверку, которая отклоняет отправку, если они содержат фиксации, которые не были созданы (или зафиксированы) отправляющим пользователем. Однако такое поведение обычно нежелательно.
Причина этого в том, что Git — это распределенная система контроля версий. Таким образом, в отличие, например, от Subversion, людям не нужно использовать один и тот же централизованный сервер, который затем может гарантировать, что вы публикуете только изменения, сделанные вами (Subversion фактически просто предполагает это, а «коммиты» создаются только на сервере). Вместо этого возможно — и часто желательно — чтобы коммиты шли разными путями, пока не попадут в центральные репозитории (несколько репозиториев также распространены). Вы даже можете работать напрямую с другим разработчиком и вносить изменения в их частный репозиторий или извлекать их из него, даже не взаимодействуя с каким-либо центральным сервером. И когда вы затем решите опубликовать коммиты на центральном сервере, конечно, этот центральный сервер не должен отклонять ваши изменения только потому, что вы включили коммиты этого другого разработчика.
Так что нет никакой гарантии, что кто-то другой не использует вашу «личность» для создания коммитов от вашего имени. Однако Git поддерживает подписание коммитов, чтобы позволить вам доказать, что коммит принадлежит вам. Любой, кто затем заинтересован в его проверке, может затем проверить подпись в фиксации и убедиться, что она действительно была сделана вами. Некоторые серверы репозиториев могут даже потребовать, чтобы все коммиты, отправляемые на сервер, были подписаны, а затем проверять подпись для каждого коммита. Но это совершенно необязательно, а не то, что поставляется с Git по умолчанию; потому что по умолчанию Git — это просто "глупый трекер контента".
person
poke
schedule
17.03.2015
.gitconfig
. - person sevenseacat   schedule 17.03.2015