目录
本篇文章将介绍作者在学习Git的过程所遇到的困惑以及熟悉Git后总结的常用命令
①Git配置的邮箱和用户名和Git的ssh密钥有什么联系?假如我使用Gitlab在张三这个账户上配置了ssh公钥,但是在Git本地的仓库使用的是另外的邮箱和用户名(比如李四),然后使用李四这个账户提交代码至远端是否会产生冲突?
解答:答案是不会产生冲突,首先我们需要明白配置ssh密钥又或者是https账号密码的本质,都是做权限的验证,简单来讲就是判断是否允许你从远端拉取代码或从本地上传代码至远端,ssh和https都只做这一件事,它们并不关心上传者是张三还是李四,而ssh只认机器,因此我在相同的机器上不管用什么账户提交代码至远端都是会通过ssh认证,我都有权限提交代码,而此时显示的提交者才会与我们配置的邮箱和用户名有关,假如本地配置的邮箱在远端(例如GitLab)注册过,则提交者会显示该邮箱与GitLab对应的账户,如果本地的配置的邮箱并没有在远端注册,则提交者会显示本地配置的用户名
下面将通过从0到1完成Git管理的流程来介绍Git常用的命令
①进入任意一个文件夹后初始化Git
- cd Gittest
- git init
②随意创建一个文件,然后提交到git暂存区
- touch gitinitial
- git add .
③接下来我们就需要将暂存区的文件提交到版本区,形成具体的版本,命令如下:
git commit -m "xxx"
④不过此时第一次使用Git的朋友可能会报错,那是因为我们没有设置邮箱和用户名告诉Git我们是谁,配置用户名和密码的命令如下:
- git config --global user.name "Your Preferred Name"
- git config --global user.email "your.email@example.com"
如果是克隆的别人的机器,想要修改用户名和密码可以用如下命令:
- git config --global --replace-all user.name "Your New Name"
- git config --global --replace-all user.email "your.email@example.com"
还有一种情况就是如果想要不同的项目使用不同的用户名和邮箱,就不能使用全局修改了,局部修改命令如下:
- cd /path/to/your/repository
- git config user.name "Your Preferred Name"
- git config user.email "your.email@example.com"
⑤完成上述步骤之后,我们已经可以使用git log命令查看到最新的版本号了,如果此时发现了该文件有重大BUG,那么我们需要使用git的回滚命令,在实际开发过程中,常常是从版本区回滚到工作区,命令如下:
git reset --hard 版本号
⑥到此,如果仅在本地做代码版本控制,上述命令就能够满足大部分的需求,而如果需要使用远端仓库进行管理(例如GitHub,GitLab等),则还需要记住额外的一些命令
⑦首先是配置远端仓库地址
git remote add origin https://github.com/xxxx/xxxx
如果之前配置过远端仓库地址,想要修改远端仓库,命令如下:
git remote set-url origin 新的远程仓库URL
⑧生成ssh密钥,把公钥放到远端仓库上,生成密钥的命令如下:
ssh-keygen -t rsa
敲完该命令后,连续按回车3下就会在~/.ssh/目录下生成一个私钥 id_rsa和一个公钥id_rsa.pub
使用cat命令将id_rsa.pub中的密钥传至远端仓库即可
cat ~/.ssh/id_rsa.pub
⑨最后就是将本地代码上传至远端仓库即可
git push -u origin master
当添加“-u”参数时,表示记录push到远程分支的默认值,下次继续push的这个远端分支的时候推送命令就可以简写成“git push”