同时使用 GitHub 和 GitLab

1、git 出现提交被拒问题

先说一下写这篇博客的缘由,之前自己开发项目的时候都是用 gitHub 来托管代码,但是实习之后由于公司项目隐私问题,给分配了 GitLab 的用户名和邮箱,当时我就直接在电脑上把用户名和密码进行了全局配置,自那以后我在实习之余做自己的项目时,每次往 gitHub 上提交代码都没有我的 contributions 记录(不会出现那个小绿点了),当时我以为网卡没在意。

今天春节在家远程办公的时候,突然出现 GitLab 提交代码被拒的问题:Push to origin/master was rejected,可能是新建了个项目并提交代码到 gitHub 上时让输入 gitHub 的用户名和密码的缘故。这一问题不仅影响我远程工作进度,甚至困扰我几个晚上,百思不得其解。有时候就是会突然的灵光一闪,想到了 git 用户名和邮箱的问题,上网查了一下,我之所以代码代码提交被拒是因为,我用了 GitHub 的用户名和邮箱去提交 GitLab 的代码,当然会出问题!所以需要重新配置之一下。

2、全局配置 git 用户名和邮箱

git config --list查看 git 配置信息git config --global --list查看 git 全局配置信息
git log

查看 commit 历史(会显示提交的用户名和邮箱)

git reflog查看所有 commit ,包含 git reset --hard [..] 之前的 commit 历史,以及 commit 之间 reset 的跳转信息
注意:在使用 git reset --hard [commit] 之前,需要将暂存区的代码进行提交,否则执行命令后 git 会将当前没提交的代码删除。
git config user.name查看 git 用户名git config user.email查看 git 用户邮箱
git config --global user.name "name"全局配置 git 用户名
git config --global user.email "yourEmail.com"全局配置 git 用户邮箱
  
git config --global user.name 你的英文名、、git config --global user.email 你的邮箱、、git config --global push.default simple
git config --global core.quotepath false、、git config --global core.editor "code--wait"、、git config --global core.autocrlf input

3、同时使用GitHub和GitLab

由于公司团队使用 GitLab 来托管代码,同时,个人在 Github 上还有一些代码仓库,可公司邮箱与个人邮箱是不同的,由此产生的 SSH key 也是不同的,这就造成了冲突 ,如何在一台机器上面同时使用 Github 与 Gitlab 的服务?

简单来说,你可以配置一个全局的用户名和邮箱,自己的多个项目上传 github 的时候都会验证这个全局的用户名和邮箱。公司的项目配置一个本地的用户名和邮箱,这样上传代码到 gitlab 的时候就会验证你本地用户名和邮箱。这样就不用来回切换用户名和邮箱了,可以避免提交代码被拒的情况发生。同时使用GitHub和GitLab

git config --global user.name "name"全局配置 git 用户名
git config --global user.email "yourEmail.com"全局配置 git 用户邮箱
git config --local user.name "name"本地配置 git 用户名
git config --local user.email "yourEmail.com"本地配置 git 用户邮箱
在配置本地用户名和邮箱时需要注意,比如:需要给 Project 项目配置本地用户名和邮箱,则需要到 Prooject 项目下输入 git 配置命令。

版权声明:本文为Marker__原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。