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 配置命令。 | |||