前言:因为实习期间公司用的Gitlab提交代码,而个人仓库是Github,难免有同时代码管理的需求,仅此记录全链路流程,节省相关配置的时间。
gitlab仓库与配置
1.git本地配置
首先在~/.gitconfig
配置文件进行用户名、邮箱等信息的配置,若没有该文件,则在根目录自己新建。配置内容如下(复制即可,将${your_gitlab_account}改成自己对应的用户名):
[user]
email = {your_gitlab_account}@bytedance.com
name ={your_gitlab_account}
[url "gitr"]
insteadOf = git://git.byted.org/
[credential "https://code.byted.org"]
username = {your_gitlab_account}
[url "ssh://{your_gitlab_account}@git.byted.org:29418"]
insteadOf = https://git.byted.org
[url "git@code.byted.org:"]
insteadOf = https://code.byted.org/
之后可以使用命令
git config user.name
git config user.email
验证输入的用户名邮箱是否正确
2.SSH信息配置
在文件~/.ssh/config
(没有则自己在根目录创建)中添加以公司对应的配置信息,这里不做展示。
3. GitLab仓库认证
公司使用的话Git仓库在使用时需要进行认证,进行SSO认证,个人使用则与后续的GitHub教程大同小异。
4. 拉取仓库内容
git clone 【仓库里对应的SSH即可】
此时本地开发环境已与GitLab代码库同步完成。
GitHub仓库与配置
1. git本地配置
关键是让两个配置在同一开发机生效,方便后续工作与个人学习,而go install/mod tidy或者module是通过git的http协议去下载依赖的,所以这里修改为ssh协议去获取。在~/.gitconfig
文件中添加如下内容:
[url "git@github.com:"]
insteadOf = http://github.com/
修改后go mod可以正确自动引用依赖了。
2.SSH信息配置
与上文公司的方法不同,个人开发大多都是使用SSH配置即可。首先使用如下命令创建SSH-key。
ssh-keygen -t rsa -C "${your_email}" -f ~/.ssh/id_rsa_github
由于gitlab已经创建过默认名称的SSH认证文件id_rsa_gitlab,所以为github的认证文件起一个其他的名字,这里采用加后缀的方式。接下来,要求输入更新代码的密码,可以设置或直接回车来跳过密码提交。此时,~/.ssh路径下应该有四个SSH配置文件了,分别为gitlab、github的公钥和私钥。
即:config, id_rsa_github, id_rsa, id_rsa_github.pub, id_rsa.pub, known_hosts
接下来,在文件 ~/.ssh/config
中添加以下内容:
Host github
User git
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
其中:
- Host:涵盖了下面一个段的配置,可以用它来替代将要连接的服务器地址。
- User:自定义的用户名,默认为git,可不配置
- HostName:真正连接的服务器地址
- PreferredAuthentications:指定优先使用哪种方式验证,支持密码和秘钥验证方式
- IdentityFile:指定本次连接使用的密钥文件
最后,使用如下命令将生成的私钥添加到SSH中:ssh-add -K ~/.ssh/id_rsa_github
而macOS Sierra后发现SSH不能保存key密码,可能是出于安全考虑,增加了UseKeychain选项,这样让用户可以自主的选择哪些host开启保存密码(之前是默认全部开区),即在 ~/.ssh/config 文件中添加如下内容:
Host * AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_rsa_github
3.GitHub仓库认证
将刚刚生成的github公钥中的内容打开并复制,添加到github。如果刚没保存,可以直接使用如下命令来把公钥复制到剪切板:
pbcopy < ~/.ssh/id_rsa_github.pub
然后,进入自己的github主页,点击头像,然后点击下拉菜单中的Settings设置选项
点击左侧SSH and GPG keys,然后新建一个SSH key。4. 拉取仓库内容
git clone 【仓库里对应的SSH即可】,但git提交代码时查找优先级为:system配置->global配置->local配置,且后面的可以覆盖前面的。即:如果不修改账户的话,在提交代码人就会成为刚才在global配置中那样为公司账户,所以需要修改为自己github账户。使用如下命令:但是提交的时候需要区分个人GitHub个人开发者和GitLab的身份,需要:
git config --local user.name "{your_github_name}" git config --local user.email{your_github_email}
将此代码仓库中的账户改为个人github账户。修改后,可以使用命令:
git config --local --list
来查看修改是否成功。
此时本地开发环境已与GitHub代码库同步完,可以愉快的在一台电脑上边工作边自我学习啦~
文章评论