背景
github 不反对 rest 的模式,操作仓库,
(即账户 + 明码,操作,不行了)
github 的仓库操作,反对基于 token 认证的操作
(token-based authentication)
本文写的是,通过 ssh 操作 github 上的 git repo
细节
GitHub 反对 ssh 部署的粒度全面,
- 能够基于用户,对所有的仓库对立部署
- 能够基于仓库部署
那么一个用户创立了多个组织,
每个组织,只有该用户一个人,
怎么对立部署呢?
笔者暂未钻研有成,本文接着形容,ssh 分仓库部署
解决,就是通过本地的 ssh 配置文件
~/.ssh/config
批改配置文件
个别咱们的配置文件,长这样
Host * // 通用
AddKeysToAgent yes // 增加密钥
UseKeychain yes // 应用长久化
IdentityFile ~/.ssh/id_ed25519 // 文件门路,默认加密形式命名
当初一个 repo, 对应一个 host
增加了,两项配置
Host github1 // 主机
HostName github.com // 服务器名
User git // 用户
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_a // 一个仓库,一个私钥
Host github2
HostName github.com
User git
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_repo2
批改本地 git 仓库的近程门路 remote url
后果为
git remote -v
origin github1:AgesX/_off_screen_render.git (fetch)
把对应的公钥,粘贴到 github repo 外面
记得勾选,容许写入
以上为,流程的次要环节
上面进入凑字数
cd 一个文件夹,不不便
开发几年后,老眼昏花,
不能精确的拖动一个指定的文件夹
我开发出了,cdc
进入文件夹中,cdc
配合随便拖拽一个子文件到终端
就等于精确,找到想要的文件夹
cd_current(){cd "$(dirname"$1")" && pwd
}
alias 'cdc'='cd_current'
查看 git 仓库,基于文件的日志
能够思考 gitlf
git log file
gitlf_file(){git log --follow -p -- "$1"}
alias gitlf="gitlf_file"
- 创立密钥
ssh-keygen -t ed25519 -C "dengjiangzhouReal@gmail.com"
- 提交
git remote set-url origin Mm:AgesX/gcd_
github 文章
生成新 SSH 密钥并增加到 ssh-agent
命令:
ssh-add -K ~/.ssh/id_a
所有的私钥,都要来一遍