В GIT какая разница между "git config user" и действительными учетными данными учетной записи GitHub - PullRequest
0 голосов
/ 28 марта 2020

Я уже прочитал, что на этом посте , но все же мне не ясно. В принципе, насколько я могу судить, я могу использовать в качестве git config user.name и git config user.email все, что захочу, независимо от того, какую учетную запись GitHub я использую (из-за чего у меня запрашиваются учетные данные при первом вводе git push) .

Более того, в коммите GitHub он показывает user.name, а не имя пользователя фактической учетной записи GitHub. Итак, в чем разница между ними? Какой смысл иметь git config user.name и git config user.email?

Ответы [ 2 ]

3 голосов
/ 28 марта 2020

Это просто две разные вещи. Единственная причина, по которой они связаны друг с другом, заключается в том, что мы устанавливаем неявную связь между учетной записью GitHub и пользователем, чья электронная почта участвует в коммитах (В действительности это не совсем так, но об этом позже. Я пытаюсь сделать точку).

Хорошо, более формально: Да, вы правильно понимаете, что вы можете установить любые user.name и user.email, независимо от фактической учетной записи GitHub. Почему это может случиться?

Потому что git, как в вашем .git проекте не имеет значения где вы размещаете свой код. Это может быть GitHub, GitLab или Bitbucket, сам хостинг, на той же машине в другой папке, где угодно. Все, что беспокоит git, - это тот факт, что для каждого коммита существует человек, который создал этот коммит, его / ее имя известно и его / ее адрес электронной почты известен. Это то, что пользователь для git, это то, для чего git использует пользователя (в своей основной форме c).

Так зачем нужна учетная запись GitHub? Потому что это просто еще одна онлайн-платформа, на которой вам нужно иметь учетную запись. Это ничем не отличается от наличия учетной записи Facebook или Twitter.

Вот почему мы имеем неявное соединение между ними. Потому что ни один из ваших git проектов не заботится о GitHub или любом другом сервисе, и GitHub не будет жаловаться на то, какую электронную почту и имя вы используете. наших git учетных записей и просто создайте ложные коммиты и отправьте их sh невольно на наши собственные учетные записи GitHub. Да, вы можете сделать это. Вы можете взять мою электронную почту и имя пользователя, которые я использую для своих коммитов, и зафиксировать ваши проекты. Почему твой? Потому что вы можете аутентифицировать вашу учетную запись GitHub. Вы не можете pu sh для моих проектов, если я не предоставлю вам права или вы не знаете мой аккаунт GitHub!

Хорошо, последнее, но не менее важное, я немного соврал вам в начале , Я постоянно говорю, что у нас есть неявная связь между ними, но более чем очевидно, что это не совсем так. Лучший способ сказать это: GitHub тесно связан с вашим git.username and git.email, тогда как git сам по себе очень мало заботится о таких провайдерах. Мы видим, что GitHub имеет такую ​​связь с вашей учетной записью git из-за ограничений безопасности ...

Вот часть документации от GitHub

Коммиты появятся на вашем график вклада, если они отвечают всем следующим условиям: Адрес электронной почты, используемый для коммитов, связан с вашей учетной записью GitHub.

Так что технически ДА, вы можете притворяться другими людьми, но не будете получить что-нибудь из этого.

Редактировать Это также хорошее время, чтобы отметить, что git также поддерживает подписывание коммитов / тегов. Способ для вас доказать , что вы - настоящий автор ваших коммитов, а не какой-то случайный хакер. Должен ли ты это делать или нет - это совсем другой вопрос.

1 голос
/ 28 марта 2020

Github в основном просто размещает сервер git. Учетные данные github таковы, что github знает, что вы на самом деле имеете полномочия pu sh на сервер git, затем user.name и user.email, чтобы фактический сервер git знал, как отображать ваши коммиты.

...