===================================
- 本地仓库和远程仓库是完全隔开的
- 代码存储在云端GitHub
- SSH key验证身份 使用场景:可以避免我们重复的输入密码,提高开发效率;访问远程服务
- 如果SSH key私钥(即.ssh文件夹中的id_rsa文件)被第三方获取,那么他将可以您的身份来操作 Git 仓库,这跟密码被盗一样严重
git远程仓库GitHub 常用操作流程
0. 前提
- 在GitHub上有一个账号
- git仓库在电脑上
- 上传代码:私钥加密
- GitHub用账号留下的公钥解密
1. 生成ssh key
第1步 运行命令
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
复制代码
第2步 三次回车,直到没有提示;然后
cat ~/.ssh/id_rsa_pub
复制代码
第3步 复制内容,去你GitHub主页>设置页面>SSH key...,标题填能表示清哪台电脑就行,填入公钥
ok
GitHub_SSH key帮助文档
2. 测试是否配置成功
第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 ...
了
可以设置:
git remote set-url origin git@github.com:yourName/***.git
复制代码
来修改之前的origin URL,是不是很鸡贼
4. 查看生成的SSH key密钥文件目录,备份
cd ~/.ssh
ll
复制代码
$ ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist
复制代码
cp id_rsa id_rsa_bk
cp id_rsa.pub id_rsa_bk.pub
ll
复制代码
总结
1. 需要你复制的代码
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. 高级操作
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 在文件最后加上
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"
复制代码
我的配置:
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 。
Checking for existing SSH keys
Generating a new SSH key and adding it to the ssh-agent
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。