• 本地仓库和远程仓库是完全隔开的
  • 代码存储在云端GitHub
  • SSH key验证身份 使用场景:可以避免我们重复的输入密码,提高开发效率;访问远程服务
  • 如果SSH key私钥(即.ssh文件夹中的id_rsa文件)被第三方获取,那么他将可以您的身份来操作 Git 仓库,这跟密码被盗一样严重

git远程仓库GitHub 常用操作流程

0. 前提

  1. 在GitHub上有一个账号
  2. git仓库在电脑上
  • 上传代码:私钥加密
  • GitHub用账号留下的公钥解密

1. 生成ssh key

第1步 运行命令

1
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

第2步 三次回车,直到没有提示;然后

1
cat ~/.ssh/id_rsa_pub

第3步 复制内容,去你GitHub主页>设置页面>SSH key…,标题填能表示清哪台电脑就行,填入公钥

ok

GitHub_SSH key帮助文档

2. 测试是否配置成功

第1步 运行 命令

1
ssh -T git@github.com

第2步 确认GitHub给的公钥

不可敲回车,输入yes即可

第3步

看到Hi xxx! You’ve successfully authenticated…说明添加成功

3.注意

  • GitHub,别用HTTPS协议,每次要输密码不方便
  • 使用SSH key
  • 电脑-私钥 GitHub账号-公钥
  • 上传代码用私钥加密,github用公钥解密
  • 如果手贱已经生成HTTPS链接了,不方便用git remote add ...

可以设置:

1
git remote set-url origin git@github.com:yourName/***.git

来修改之前的origin URL,是不是很鸡贼

4. 查看生成的SSH key密钥文件目录,备份

1
2
cd ~/.ssh
ll
1
2
$ ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist
1
2
3
cp id_rsa id_rsa_bk
cp id_rsa.pub id_rsa_bk.pub
ll

总结

1. 需要你复制的代码

1
2
3
4
5
ssh-keygen -t rsa -b 4096 -C 你的邮箱
cat ~/.ssh/id_rsa.pub # 得到公钥内容
ssh -T git@github.com
git remote add origin git@xxxxxxx
git push -u origin master

2. 高级操作

1
2
3
4
5
6
7
touch ~/.bashrc
echo 'alias ga="git add"'>> ~/.bashrc
echo 'alias gc="git commit -v"'>> ~/.bashrc
echo 'alias gl="git pull"'>> ~/.bashrc
echo 'alias gp="git push"'>> ~/.bashrc
echo 'alias gco="git checkout"'>> ~/.bashrc
echo 'alias gst="git status -sb"'>> ~/.bashrc

3. 最后 code ~/.bashrc 在文件最后加上

1
alias glog="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit -- | less"

我的配置:

1
alias Glg="git log --color --graph --date=relative --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

提问

有没有一种可以实现一键ga+gv “xxx”+gl+gp+gst的Combo技?

重复添加SSH key会如何? > 会使你之前添加的key失效

一些链接

高频使用的 Git 命令: 不是入门文档,官方文档肯定比我全面,这里是结合实际业务场景输出。

如果你看到 “access denied”:表示拒绝访问,那么你就需要使用 https 去访问,而不是 SSH 。

GitHub添加SSH key时的问题

告诉你 ssh 的常见使用场景和配置

git:如何管理本机的多个ssh密钥

ssh keys自动化管理工具

在 Coding.net 添加公钥

Checking for existing SSH keys

Generating a new SSH key and adding it to the ssh-agent


·未完待续·

参考文章

git 远程仓库.pdf

相关文章