文章转载自:git push推代码到github遇到的问题
同一台电脑既配置gitlab私有仓库又推送github公共sdk如何配置密码
对于很多程序员说,平时不仅会使用公司的gitlab账户做开发,私下里也可能也有自己的个人github账户整理学习,如果仅仅通过设置全局的user.name、user.email避免每次推送代码到仓库都需要填写账号、密码验证,就会设置其中一个,而对另一个账号的验证失败,那么在这种情况下,在同一台电脑上如何让这两个账户和平共存呢?
git config --global user.name "github用户名"
git config --global user.email "github邮箱"
在使用公司的gitlab账号时,为了提升效率,一般都会生成rsb.pub,并把生成的秘钥天道gitlab账号中,这样可以密码每次推送代码都需要验证账号的繁琐步骤,提升开发效率。 参考之前配置公司的gitlab账户的ssh key的情况,这里重新对github账号生成一个新的ssh key 添加到 github账户上就能达到gitlab和github共存的情况。
生成github的ssh key
在~/.ssh目录下,使用如下命令生成github_rsa和github_rsa.pub文件。
cd ~/.ssh
ssh-keygen -t rsa -C "你的github邮箱" -f ~/.ssh/github_rsa
添加github_rsa.pub文件内容到github账号中
输入上面的命令后,提示输入内容确认时,可以不填写一路回车,然后会在 ~/.ssh 目录下生成两个文件:github_rsa 和 github_rsa.pub。 把github_rsa.pub以文本格式打开,复制全部内容,并添加到github中去。
配置github和gitlab文件
在~/.ssh/目录下创建一个config文件,分别配置公司gitlab的ssh key 和 自己个人的 ssh key
Host gitlab
HostName 公司的代码仓库服务器地址
User gitlab用户名
IdentityFile ~/.ssh/id_rsa
Host github.com
HostName github.com
User github用户名
IdentityFile ~/.ssh/github_rsa
其实这里的User并不会有我们预期的效果,比如你在公司的gitlab用户名一般会取实名的名字,而github是一个随意的昵称。这里并不会让你以后推送代码到gitlab时取 你在这里配置的 gitlab用户名,同样也不会推送到github时取你在这里配置的 github用户名。因为这个其实只是针对ssh key的配置的User,并不会影响你之前通过 git config --global user.name "公司gitlab用户名" 设置的git账户名
验证是否配置成功
可以分别测试一下了你的ssh 是否能连通了
ssh -T git@gitlab
ssh -T git@github.com
如果出现类似下面的字段就表明ssh key配置成功,可以正常使用。
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
设置本地用户名
前面第三步中提到,在 ~/.ssh/config 文件中的User 并不等同于我们的git账户名,因为有可能在之前通过如下方式设置过类似的用户名。
git config --global user.name "公司gitlab实名"
然后传代码到github的时候,也是显示的这个实名,就会让强迫症码农心生不爽。 你可以继续到你本地的github仓库项目文件夹下去设置一个本地的用户名
git config --local user.name "github用户名"
再推送,就可以显示对应的用户名了。
什么时候用global,什么时候用local,其实取决于用哪个账户用得多一点,比如你在公司的电脑上,你就可以把公司的gitlab用户名加 --global 配置,而自己个人的github加 --local。如果你是在你自己家里的电脑上,就可以是相反的操作。
github提交PR(pull request)过程和问题
-
登录github项目,fork项目 登录github账户,访问一个开源项目,点击右上方fork按钮。fork后,自己的github仓库中就出现这个项目。
-
克隆自己仓库fork到的项目到本地 到自己的github项目中,点击clone复制链接地址,克隆到本地。
git clone 自己github项目链接
接下来执行完毕,使用git remote -v 查看当前状态,出现如下信息:
origin git@github 自己的github项目地址
3.添加上游仓库的项目地址 到项目的github中,复制项目的链接,继续查看当前状态
git remote add upstream 开源项目的链接
git remote -v 反馈信息如下:
origin git@github 我自己的项目地址
upstream github.com 开源项目的项目地址 现在你的本地代码已经与远程代码相连了。
PS:一定要确定origin是自己的地址,upstream是远程的地址。
- 在本地创建分支,在分支上进行编辑代码,提交代码
git branch 新分支(develop)
git checkout develop
// 在本地编辑改变代码
git add .
git status
git commit -m '提交本地代码'
git push origin master
OpenSSL SSL_read: Connection was reset, errno 10054
在使用git push命令推送代码到github时,报错:OpenSSL SSL_read: Connection was reset, errno 10054 。 首先,造成这个错误很有可能是网络不稳定,连接超时导致的, 如果再次尝试后依然报错,可以执行下面的命令。
打开Git命令页面,执行git命令脚本:修改设置,解除ssl验证
git config --global http.sslVerify "false"
github加速
复制这个链接raw.hellogithub.com/hosts里面的内容,…
# GitHub520 Host Start
140.82.112.25 alive.github.com
140.82.112.26 live.github.com
185.199.108.154 github.githubassets.com
140.82.114.22 central.github.com
185.199.108.133 desktop.githubusercontent.com
185.199.108.153 assets-cdn.github.com
185.199.108.133 camo.githubusercontent.com
185.199.108.133 github.map.fastly.net
199.232.69.194 github.global.ssl.fastly.net
140.82.114.4 gist.github.com
185.199.108.153 github.io
140.82.112.3 github.com
192.0.66.2 github.blog
140.82.113.5 api.github.com
185.199.108.133 raw.githubusercontent.com
185.199.108.133 user-images.githubusercontent.com
185.199.108.133 favicons.githubusercontent.com
185.199.108.133 avatars5.githubusercontent.com
185.199.108.133 avatars4.githubusercontent.com
185.199.108.133 avatars3.githubusercontent.com
185.199.108.133 avatars2.githubusercontent.com
185.199.108.133 avatars1.githubusercontent.com
185.199.108.133 avatars0.githubusercontent.com
185.199.108.133 avatars.githubusercontent.com
140.82.114.9 codeload.github.com
52.217.0.51 github-cloud.s3.amazonaws.com
52.217.97.36 github-com.s3.amazonaws.com
52.216.146.227 github-production-release-asset-2e65be.s3.amazonaws.com
52.216.89.19 github-production-user-asset-6210df.s3.amazonaws.com
52.217.42.36 github-production-repository-file-5c1aeb.s3.amazonaws.com
185.199.108.153 githubstatus.com
64.71.144.202 github.community
23.100.27.125 github.dev
185.199.108.133 media.githubusercontent.com
# Update time: 2021-10-16T22:05:31+08:00
# Update url: https://raw.hellogithub.com/hosts
# Star me: https://github.com/521xueweihan/GitHub520
# GitHub520 Host End
参考
同一台电脑上个人的github账户如何与公司的gitlab账户共存
[git/GitHub] git push 时报错:fatal: remote error: You can't push to git://github.com/user/xxx.git(已解决)
Github使用personal access token(PAT)验证
永久一次性解决】Git报错:OpenSSL SSL_read: Connection was reset, errno 10054
Git报错解决:OpenSSL SSL_read: Connection was reset, errno 10054 错误解决