新建(关联)远程分支
1 | ### Git global setup |
已经commit的回退到add状态
1 | git reset --soft HEAD~1 |
最近一次修改了那些文件(列表形式展示)
1 | git diff --name-only HEAD^ HEAD |
git 查看日志精简
1 | git log --pretty=oneline --author="vinyuan" |
Git 补充commit
https://blog.csdn.net/chilun8494/article/details/100645862
1 | # 第一次commit内容 |
ssh配置多个git账户
情景:【参考博客】
同一台机器有多个git账户的问题。在配置git权限时,需要配置ssh-keygen,会运行下面命令:
1 | ssh-keygen -t rsa -C "vinyuan@microsoft.com" |
命令会在~/.ssh/
目录下生成两个文件: id_rsa
和 id_rsa.pub
,然后将id_rsa.pub
的内容复制到git或者gitLab中的ssh setting
中即可。但如果有多个用户就会面临如下问题:每个用户都需要配置自己的ssh setting,生成一个私钥就会覆盖之前的 id_rsa
和id_ras.pub
。如何避免?
答案是在 “~/.ssh/config” (如果没有可以建一个)中配置。
~/.ssh/config 的规则可以查看【参考链接】
常用的参数有如下几个:
1 | Host example # 关键词 |
~/.ssh/config 的作用可使你通过别名(即关键词)登录目标服务器,例如ssh example
而不必 ssh -p xxx admin@xxx.xxx.xxx.xxx
这个文件还可以用来管理多git用户。
以两个用户user1, user2为例,先后生成各自的公钥、密钥:
1 | **ssh-keygen -t rsa -C "user1@hotmail.com"** |
之后可以在~/.ssh/config 配置不同用户的ssh连接方式
1 | github user1@hotmail.com |
使用ssh的ssh-add命令将密钥添加到 ssh-agent 的高速缓存中,这样在当前会话中就不需要再次输入密码了 。
1 | ssh-agent bash |
配置完成后可以使用
1 | ssh -T git@user1 |
来测试连接
每个git project 目录下面都有一个”.git/config”文件,里面配置了远程仓库的地址,
这时候,我们需要修改跟密钥对应的地址,上面在配置ssh时,为每个Hostname配置了一个host的别名,这时候,我们就不能使用原来的Hostname来提交了,要用别名来代替Hostname。
url = git@github.com:user2/Sample.git
改成
url = git@user2:user2/Sample.git
可以看到host起到了别名的作用,并且在不同的项目不同的账户可以配置自己的私钥方式,通过配置不同的xxx_id_rsa,达到互不影响的效果。
经过这样配置后,再git push时就会经过不同的公钥,私钥验证而互不影响了
实际案例
1. 生成密钥
1 | ssh-keygen -t rsa -C “yuanwenwu3@jd.com” |
2.堡垒机配置~/.ssh/config
1 | Host yuanwenwu3 |
3. 堡垒机git项目下.git/config配置
注意下面git@git.jd.com
被换成了git@yuanwenwu3
,对应上面Host名称
```python
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote “origin”]
url = git@yuanwenwu3:yuanwenwu3/dnn-convert-tfrecord.git
fetch = +refs/heads/:refs/remotes/origin/
[branch “master”]
remote = origin
merge = refs/heads/master
[user]
name = yuanwenwu3
email = yuanwenwu3@jd.com