本文创建日期:2021-06-11 08:00:00
本文修正日期:2026-03-31 22:00:00
Git的使用和踩坑
以提交代码到GitHub为例
1、SSH keys
主要设置
配置好全局用户(这里的邮箱和名字主要用于 commit 记录的展示):
git config --global user.name "你的名字"
git config --global user.email "注册时使用的邮箱地址@qq.com"接着生成密钥(现在推荐使用目前更安全的 ed25519 算法):
ssh-keygen -t rsa -C "注册时使用的邮箱地址@qq.com"
# 如果你的系统不支持 ed25519,再回退使用 rsa:
# ssh-keygen -t rsa -b 4096 -C "注册时使用的邮箱地址@qq.com"添加你的公钥到GitHub
找到.ssh这个文件夹
Windows下通常在 /c/Users/你的用户名/.ssh/ 下
Linux (如 Arch/Debian) 或 macOS 下在 ~/.ssh/ 下
你会看见一个带.pub和不带.pub的,带.pub是公钥,不带的是私钥。
之后找到以 .pub 结尾的文件(如 id_ed25519.pub)并复制里面的内容。
在 GitHub 上的 Settings -> SSH and GPG keys 中点击 “New SSH key”,将公钥粘贴进去并保存。
链接到远程仓库(注意:配置了 SSH 后,一定要使用 git@ 开头的 SSH 地址,不要用 HTTPS 地址):
git remote add origin git@github.com:XXXXXX/XXXXXXXXX.git
git remote add hahaha git@github.com:XXXXXXXX/XXXX.git在本地提交:
echo "# 咔咔咔咔咔嘎嘎嘎嘎嘎" >> README.md
git init
git add README.md
git commit -m "first commit"
# 将当前分支重命名为 main (目前的主流默认分支名)
git branch -M main
# 当然你也可以创建一个不需要修改任何文件的空提交:
# git commit --allow-empty -m "Initial empty commit"配置多账号/多主机的 config
当你需要在同一台电脑上使用多个 Git 账号,或者管理不同服务器的 SSH 连接时,可以在 .ssh 目录下创建并编辑 config 文件。
路径:
- Windows:
C:\Users\你的用户名\.ssh\config - Linux/Mac:
~/.ssh/config
在config中进行如下类似的配置:
#本地虚拟机的ssh配置
Host 192.168.222.222
HostName 192.168.222.222
User hahaha
#本地虚拟机的ssh配置
Host 192.168.2.25
HostName 192.168.2.25
User root
#本地虚拟机的ssh配置
Host ubuntu024 #(其实这里写什么都行)
HostName 192.168.2.24
User haha
IdentityFile ~/.ssh/ubuntu_rsa
#ssh ubuntu024 #这样就可以连接了
# github的ssh配置 (注意:GitHub的User固定为git,绝不能写邮箱)
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/你的私钥key
#github的第二个ssh配置
Host second.github.com(这里随便写)
HostName github.com
User git
IdentityFile ~/.ssh/你的私钥key
Host github.com
HostName ssh.github.com
User git
Port 443 #被屏蔽可使用443端口
#Port 22
IdentityFile ~/.ssh/myblogkey
Host githubtest(这里可以取你喜欢的名字)
HostName ssh.github.com
User git
Port 443
IdentityFile ~/.ssh/githubtest
#阿里云的ssh配置
Host aliyun.ubuntu
HostName 8.138.130.196
User root
IdentityFile ~/.ssh/你的私钥keyGit 添加私钥命令(如果遇到密钥未生效的情况,可以手动添加到 ssh-agent):
eval $(ssh-agent)
ssh-add ~/.ssh/你的私钥key建立上游分支的概念
刚开始使用git的时候一定要重视本地分支和上游分支
git add . #暂存更改
git commit -m "Initial commit" #创建提交
git remote add origin https://github.com/username/repository.git # 添加远程仓库
git branch -M main # 将本地当前分支重命名为 main
git push -u origin main #-u 选项是 --set-upstream 的简写,用于在 git push 时为当前分支设置上游
# -u 选项是 --set-upstream 的简写,用于在 git push 时为当前分支设置上游
#第一次本地分支推送到远程仓库时,你需要使用 -u 选项,这样 Git 会将本地分支和远程分支关联起来,之后在该分支上进行 git pull 或 git push 时,不需要再指定远程仓库和分支名称。解释
-
第一次执行
git push -u origin main后,Git 会将你本地的main分支推送到远程仓库origin的main分支。 -
同时,设置本地
main分支的上游分支为origin/main。 -
之后,如果你在
main分支上,由于已经建立了关联,只需使用以下简写命令即可同步代码:
git push # 推送代码到远程
git pull # 从远程拉取代码不需要再明确指定 origin 和 main,因为它们已经被关联为上游分支。