1.删除GIT全局配置 {#1-删除GIT全局配置}
查看是否进行过全局配置
|-----------|------------------------------------|
| 1
| git config --global --list
|
如果配置过,会出现
|-------------|-----------------------------------------------------------------------------------------|
| 1 2
| $ git config --global user.name "你的名字" $ git config --global user.email "你的邮箱"
|
将其删除
|-------------|--------------------------------------------------------------------------------------------------------|
| 1 2
| $ git config --global --unset user.name "你的名字" $ git config --global --unset user.email "你的邮箱"
|
2.生成新的SSH keys {#2-生成新的SSH-keys}
(C:\Users\用户名\ .ssh)目录下,打开git-bash窗口
|-----------|-----------------------------------|
| 1
| ssh-keygen -t rsa -C "邮箱"
|
使用不同邮箱生成两次,可以使用不同命名区分。
打开 .pub文件(公钥),将内容全部配置到到github或其他平台中。
4.创建config文件 {#4-创建config文件}
config,无文件扩展名。
文件内容如下:
|------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12
| Host 别名 HostName github.com IdentityFile ~/.ssh/ssh key的文件 PreferredAuthentications publickey User github用户名 Host 别名 HostName github.com IdentityFile ~/.ssh/ssh key的文件 PreferredAuthentications publickey User github用户名
|
|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4
| # Host : 每个Host要取一个别名,每个Host主要配置HostName和IdentityFile即可 # HostName : 要登录主机的主机名 # User : 登录名 # IdentityFile : 指明上面User对应的identityFile路径
|
5.测试SSH key是否生效 {#5-测试SSH-key是否生效}
依次验证
|-----------|-----------------------------|
| 1
| ssh -T git@配置的Host名
|
出现用户名即说明成功
要使用这些配置好的账号,您需要在 Git 操作中引用对应的主机别名。要为特定的 Git 仓库使用指定的 GitHub 账户进行操作,您可以在该仓库目录下执行以下 Git 命令,根据需要替换别名。
对于账户 user:
将远程仓库的URL从 github.com 改为 host别名:
git remote set-url origin git@host别名: .../...git
现在,当你执行诸如 git push、git pull 或 git clone 等操作时,Git 会根据您使用的 URL 中的主机别名,自动使用相对应的 SSH 密钥进行身份认证。这样您就可以方便地切换使用不同的 GitHub 账户了。
确保在您的本地 Git 配置(位于您的 Git 仓库的 .git/config 文件中)已正确设置远程仓库的 URL。这样一来,每当您与远程仓库交互时,Git 将自动使用为该主机别名配置的 SSH 密钥。
例如 {#例如}
|---------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11
| Host name1 HostName github.com IdentityFile ~/.ssh/name1 PreferredAuthentications publickey User github_name1 Host name2 HostName github.com IdentityFile ~/.ssh/name2 PreferredAuthentications publickey User github_name2
|
当您配置了 SSH 别名来管理多个 GitHub 账户时,您会将原本的 git
操作命令中的默认 github.com
替换为您在 SSH 配置文件 (~/.ssh/config
) 中定义的别名。以下是一些对照例子,展示了不使用别名和使用别名的 git
命令:
1. 克隆仓库:
-
不使用别名(原本):
|-----------|------------------------------------------------------------------------| |
1
|git clone /cdn-cgi/l/email-protection:name/repository-name.git
| -
使用别名
********
:|-----------|---------------------------------------------------------| |
1
|git clone git@********:name/repository-name.git
|
2. 推送更改到远程仓库:
-
不使用别名(原本):
|-----------|--------------------------------| |
1
|git push origin master
| -
使用别名
********
(此命令前提是远程origin
已设置为使用别名):|-----------|--------------------------------| |
1
|git push origin master
|
3. 拉取远程仓库的更改:
-
不使用别名(原本):
|-----------|--------------------------------| |
1
|git pull origin master
| -
使用别名
********
(此命令前提是远程origin
已设置为使用别名):|-----------|--------------------------------| |
1
|git pull origin master
|
4. 查看远程仓库细节:
-
不使用别名(原本):
|-----------|--------------------------------| |
1
|git remote show origin
| -
使用别名
********
(此命令前提是远程origin
已设置为使用别名):|-----------|--------------------------------| |
1
|git remote show origin
|
5. 设置远程仓库地址:
-
不使用别名(原本):
|-----------|----------------------------------------------------------------------------------------| |
1
|git remote set-url origin /cdn-cgi/l/email-protection:name/repository-name.git
| -
使用别名
********
:|-----------|-------------------------------------------------------------------------| |
1
|git remote set-url origin git@********:name/repository-name.git
|
请注意,一旦您为特定远程仓库设置了 URL,后续的所有 git
操作(如 push
、pull
、fetch
等)都会沿用该配置,不需要再次指定 SSH 别名。别名的使用主要在于初次设置远程 URL 或更改现有远程 URL 时。
从本地创建一个新的 Git 仓库到上传代码到远程 GitHub 仓库的过程涉及到几个步骤及相应的 Git 命令。以下是完整的过程和每一步所需执行的命令:
-
初始化本地仓库:
在项目的根目录下执行:cd /path/to/your/project
git init -
添加文件到暂存区:
将项目文件添加到 Git 暂存区:git add .
这里,.表示添加当前目录下的所有文件。也可以选择性地使用 git add 添加特定文件。
-
提交更改到本地仓库:
将暂存区的更改提交到你的本地仓库:git commit -m "Initial commit"
-m 后面跟的是提交信息,内容可以根据你的更改自定义。
-
连接到远程仓库:
如果还没有远程仓库,需要先在 GitHub 创建一个仓库(不要初始化 README.md 或 .gitignore 文件),然后将本地仓库与远程仓库连接:git remote add origin <GITHUB_REPOSITORY_URL>
把 <GITHUB_REPOSITORY_URL> 替换为你的 GitHub 仓库地址,例如:https://github.com/username/repository.git。
-
创建分支
命令 git branch -M main 用于重命名 Git 仓库的当前分支为 main。此命令中 -M 选项告诉 Git 如果 main 分支已经存在,就强制重命名覆盖它。
|-----------|----------------------------| |
1
|git branch -M main
| -
推送到 GitHub:
将你的本地仓库的代码推送到远程仓库:git push -u origin main
-u 参数指定默认上游分支,这样以后你可以只用 git push 来推送更改。如果你的默认分支名不是main(如 master或其他名字),请相应替换。
如果这是你第一次使用 Git,你还可能需要配置你的全局用户名和邮箱:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
在推送的过程中可能会要求你输入 GitHub 的用户名和密码,如果启用了两步验证,则需要使用个人访问令牌作为密码。如果你使用 SSH 方式,会要求你输入 SSH 密钥的密码(如果设定了的话)。
一旦设置完毕,后续你只需在本地仓库进行更改后,使用 git add、git commit 和 git push 命令来上传新的更改即可。