51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

git多用户配置

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 "邮箱" |

使用不同邮箱生成两次,可以使用不同命名区分。

http://static.51tbox.com/static/2024-11-18/col/7b208870b5015158a8ccdc162fd24042/f49bb2cb86654ef28b987dc3e12024ab.png.jpg

打开 .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 操作(如 pushpullfetch 等)都会沿用该配置,不需要再次指定 SSH 别名。别名的使用主要在于初次设置远程 URL 或更改现有远程 URL 时。

从本地创建一个新的 Git 仓库到上传代码到远程 GitHub 仓库的过程涉及到几个步骤及相应的 Git 命令。以下是完整的过程和每一步所需执行的命令:

  1. 初始化本地仓库:
    在项目的根目录下执行:

    cd /path/to/your/project
    git init

  2. 添加文件到暂存区:
    将项目文件添加到 Git 暂存区:

    git add .

    这里,.表示添加当前目录下的所有文件。也可以选择性地使用 git add 添加特定文件。

  3. 提交更改到本地仓库:
    将暂存区的更改提交到你的本地仓库:

    git commit -m "Initial commit"

    -m 后面跟的是提交信息,内容可以根据你的更改自定义。

  4. 连接到远程仓库:
    如果还没有远程仓库,需要先在 GitHub 创建一个仓库(不要初始化 README.md 或 .gitignore 文件),然后将本地仓库与远程仓库连接:

    git remote add origin <GITHUB_REPOSITORY_URL>

    把 <GITHUB_REPOSITORY_URL> 替换为你的 GitHub 仓库地址,例如:https://github.com/username/repository.git。

  5. 创建分支

    命令 git branch -M main 用于重命名 Git 仓库的当前分支为 main。此命令中 -M 选项告诉 Git 如果 main 分支已经存在,就强制重命名覆盖它。

    |-----------|----------------------------| | 1 | git branch -M main |

  6. 推送到 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 命令来上传新的更改即可。

赞(0)
未经允许不得转载:工具盒子 » git多用户配置