云计算百科
云计算领域专业知识百科平台

在服务器上配置多个GitHub SSH密钥和Git使用教程

背景:

使用https clone仓库后,再进行 push 和 commit 每次都要输入用户名和密码非常的繁琐,使用ssh key则比较的简单。且有一些时候存在多个人使用同一个账户的情况,因此需要分开存储每个人的ssh key。

步骤0:安装git

  • Windows: 下载并安装 Git for Windows。

  • macOS: 使用 Homebrew 安装:brew install git。

  • Linux: 使用包管理器安装,例如在 Ubuntu 上:sudo apt-get install git

步骤 1:检查是否已有 SSH 密钥

在服务器上检查是否已经存在 SSH 密钥:

ls ~/.ssh

如果看到以下文件,说明已经存在 SSH 密钥:

  • id_rsa(私钥)

  • id_rsa.pub(公钥)

后面你可以选择直接使用id_rsa.pub作为你的公钥,也可以重新开一个独属于自己的公钥。

步骤 2:生成新的 SSH 密钥对(已经有的可以选择跳过)

ssh-keygen -t rsa -b 4096 -C "your_email@example.com(独特id标识符)"

  • 按提示选择保存路径(默认是  ~/.ssh/id_rsa)。

  • 设置一个密码(可选,如果不想设置密码,直接按回车)

步骤 3:将公钥添加到 GitHub

  • 打开 GitHub。

  • 点击右上角头像,选择 Settings。

  • 在左侧菜单中选择 SSH and GPG keys。

  • 点击 New SSH key

  • s

  • 在 Title 中填写一个描述(例如 Server Key)。

  • 在 Key 中粘贴刚才复制的公钥内容(~/.ssh/id_rsa.pub)。注意一定是.pub公钥文件

  • 点击 Add SSH key。

步骤 4:测试 SSH 连接 

在服务器上测试是否可以通过 SSH 连接到 GitHub:

ssh -T git@github.com

看到这样的文字就说明成功啦

Hi taichiXD! You've successfully authenticated, but GitHub does not provide shell access.

但是有的时候会出现这样的问题

 这个时候需要用 sudo 权限运行 ssh -T 的命令

步骤 5:多密钥管理(单用户可忽略)

如果服务器上已经有其他 SSH 密钥,可以通过编辑 ~/.ssh/config 文件(如果没有需要实现创建cd ~/.ssh; touch config; chmod 711 config)来管理多个密钥。例如:

Host github-taichi
HostName github.com
User git
IdentityFile ~/.ssh/git_rsa

这时候运行(要记得替换Host的名称)

ssh -T git@github-taichi

可以看到欢迎的文字,检查是不是自己的用户名即可。

步骤 6:clone git 端的私有仓库

1. 本地初始化仓库

     创建一个新文件夹(mkdir <名字>)

     cd 到文件夹的目录下面

执行:

git init

看到下面的结果 

2. 设置远程的仓库

注意这里要把原来的git@github.com更换成git@(步骤5设置成的host名称)

git remote add origin git@github-taichi:XOTaichi/PrivacyEncrypt.git

如果设置错了想要修改就执行

git remote set-url origin <新的远程仓库URL>

可以通过

git config –global user.email "you@example.com"
git config –global user.name "Your Name"

设置仓库的主人

3. 查看远程仓库信息

git remote -v

4. 删除远程仓库

git remote remove origin

git使用教程(最基本: add, commit, push, pull,  merge, fix conflict) 

1. 初始化仓库

如果你是从零开始,需要先初始化一个 Git 仓库。

git init

这会在当前目录下创建一个 .git 文件夹,用于存储版本控制信息(后续可以直接通过add origin连接到远程仓库上,直接进行pull同步操作,和push更新操作)。

如果你要克隆一个已有的远程仓库,可以使用:

git clone <仓库URL>


2. 添加文件到暂存区 (git add)

在工作目录中修改文件后,需要将文件添加到暂存区(Staging Area),以便后续提交。

  • 添加单个文件:

    git add <文件名>

  • 添加所有修改的文件:

    git add .

  • 添加特定类型的文件(例如所有 .txt 文件):

    git add *.txt


3. 提交更改 (git commit)

将暂存区的文件提交到本地仓库,并附上提交信息。

git commit -m "提交信息"

提交信息应简洁明了,描述本次提交的内容。


4. 推送到远程仓库 (git push)

将本地仓库的提交推送到远程仓库(如 GitHub、GitLab 等)。

  • 推送到默认远程仓库(通常是 origin):

    git push origin <分支名>

  • 如果远程分支不存在,可以创建并推送:

    git push -u origin <分支名>


5. 拉取远程仓库的更新 (git pull)

从远程仓库拉取最新的更改并合并到本地分支。

git pull origin <分支名>

git pull 实际上是 git fetch(获取远程更新)和 git merge(合并到本地分支)的组合。


6. 合并分支 (git merge)

在开发中,通常会在不同的分支上工作。完成一个功能后,需要将分支合并到主分支。

  • 切换到目标分支(例如 main):

    git checkout main

  • 合并指定分支(例如 feature-branch):

    git merge feature-branch

  • 如果合并成功,Git 会自动创建一个新的提交记录。


7. 解决冲突 (fix conflict)

在合并分支或拉取更新时,如果两个分支修改了同一文件的同一部分,Git 无法自动合并,就会产生冲突。

冲突的表现

冲突的文件中会包含类似以下的内容:

  • <<<<<<< HEAD 到 ======= 之间是当前分支的修改。

  • ======= 到 >>>>>>> feature-branch 之间是要合并的分支的修改。

<<<<<<< HEAD
这是本地的修改
=======
这是远程的修改
>>>>>>> feature-branch

解决冲突的步骤
  • 打开冲突文件,手动选择保留哪些修改(或结合两者)。

  • 删除冲突标记(<<<<<<<、=======、>>>>>>>)。

  • 将修改后的文件添加到暂存区:

    git add <文件名>

  • 完成合并:

    git commit

    Git 会自动生成一个合并提交信息。

  • 赞(0)
    未经允许不得转载:网硕互联帮助中心 » 在服务器上配置多个GitHub SSH密钥和Git使用教程
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!