乐趣区

关于git:github-升级小技巧后知后觉

背景

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

所有的私钥,都要来一遍

退出移动版