Git配置多个SSH-Key & python中git的使用

一、配置多个SSH-Key

当前电脑已设置过了一个ssh-key,终端查看已配置的SSH-Key文件

cd ~/.ssh/
$ ls
id_rsa.pub
id_rsa

现在再配置另一个git账号的ssh-key,生成ssh-key文件时,文件用不同名称来区分,如git_key_rsa
$ ssh-keygen -t rsa -C "XXXXXX@XXX.com” -f ~/.ssh/git_key_rsa
此时会生成 git_key_rsa和git_key_rsa.pub私钥和公钥

cd ~/.ssh/
$ ls
id_rsa.pub
id_rsa
git_key_rsa.pub
git_key_rsa

1.将git_key_rsa.pub中的内容粘帖到GitLab服务器code.xxx.com的SSH-key的配置中。
2.通过config配置文件设置访问不同host,不同用户名使用不同的key,即电脑访问code.xxx.com时使用publickey登录,电脑将自己的私钥发送过去,根据用户名区分,发送的是 git_key_rsa 而不是id_rsa

vi ~/.ssh/config
Host git #自定义名称
HostName code.xxxx.com #域名或ip
User 登录名
PreferredAuthentications publickey
IdentityFile ~/.ssh/git_key_rsa

注意IdentityFile后面这项~/.ssh/git_key_rsa 文件名在生成的时候如果有个空格,设置的时候需要末尾加上空格,否则找不到这个文件
config文件的配置参数
Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
HostName : 要登录主机的主机名
User : 登录名
PreferredAuthentications:登录验证方式
IdentityFile : 指明上面User对应的identityFile路径

设置了publickey的验证方式,访问hostname为code.xxx.com并且会根据用户名的不同,去使用设置的IdentityFile里面的private key。PreferredAuthentications设置为password时,则登录验证时需要输入密码。

这种设置多个SSH-Key的方法适用于相同host不同user,不同host相同user,不同host不同user,只要配置成相对应的就好。注意私钥文件路径,是否有空格啥的。
配置好之后 查看.ssh

cd ~/.ssh/
$ ls
config
id_rsa.pub
id_rsa
git_key_rsa.pub
git_key_rsa
known_hosts

ps:ssh登录两种方式:
ssh 用户@ip 配置文件的user@HostName的ip
ssh 自定义名称 配置文件的host

记录一下当时生成私钥文件路径有空格的场景:为了区分本地已有的私钥文件,最开始选了其他路径(如下载)放私钥文件,私钥文件生成以后,并没有存放在这个指定的文件夹下面,而是放在和它同级的地方,而且这个私钥文件路径有个空格


image.png

二、python 运行git clone

1.远程git 上新建工程,在本地文件夹下将本地代码push

cd git_pulled
git init
git remote add origin git@code.xxxx.com:test/xxx.git
git add .
git commit -m "Initial commit"
git push

git_pulled下的本地仓库与远程git仓库建立了关联
ps: 终端在git_pulled下运行 git clone 会把工程下载到一个大目录xx,xx是工程名,需要再进入这个目录xx下,进行git pull 。本地git仓库在xx里面


image.png

image.png

2.通过python去git clone ,下载GitPython包

from git import Repo

git.Repo.clone_from('https://code.xxxxx.com/test/project.git', '../git_pulled')

第一个参数是工程地址,第二个参数是目的文件夹,下载到目的文件夹里面,是工程里的内容,不带外面那个名称是工程名的大目录,
这种方式在git clone 时,本地git_pulled目录下初始化了git仓库
3.继续git pull ,从git_pulled目录下

#使用包含 .git 文件夹的版本库路径创建 git.Repo 对象
r = Repo("../git_pulled")
r.remote().pull()

4.其他git操作

# 新建版本库对象
repo = Repo('路径')
# 获取版本库暂存区
index = repo.index
# 添加修改文件
index.add(['new.txt'])
# 提交修改到本地仓库
index.commit('this is a test')

# 获取远程仓库
remote = repo.remote()
# 拉去远程仓库数据
remote.pull()
# 推送本地修改到远程仓库
remote.push()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342