在本地进行项目开发时,由于代码需要进行多次迭代,因此备份代码是不可缺少的。因此使用版本控制系统来进行代码备份是很有必要的。本文将介绍有关git配置gitee以及github的相关内容,并对一些问题做出相应解释。
1.git工具
1.1 git介绍
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。git可以在多种操作系统中安装。通过git可以在本地新建仓库并与远端仓库进行连接。git在本地的工作流程分为工作区
暂存区
版本库
,通过这三部分可以对项目进行很好的版本控制与代码迭代。
1.2 git安装
windows安装教程推荐git详细安装教程,这大概是我见过最详细的教程了。
macOS如果安装 Homebrew,可以通过以下命令来安装:
brew install git
也可以前往Git官网下载 macOS 版本的安装包并按照说明进行安装。
Linux通过对应的安装包命令进行安装即可,例如:
sudo apt install git -y
1.3 git的简单使用
git可以通过命令行来进行使用,也可以使用类似Github desktop
Git GUI
这样的图形化工具来进行使用,推荐先了解了解git的命令再去使用图形化工具,这样可以加深对分布式版本控制系统的理解。git的使用过程不是本文的重点,因此不在此过多赘述,详细的内容推荐通过菜鸟教程网站以及b站相关视频进行学习。
简单常用git命令:
git clone repo
git add .
git commit -m 'information'
git push origin master
2.git配置github和gitee
2.1 设置全局用户名和邮箱
$ git config --global user.name "name"//用户名
$ git config --global user.email "xxx@xxx.com"//邮箱
这里的用户名和邮箱就是你GitHub的,好像也可以不同,不过提交的时候信息可能会出问题
2.2 创建ssh key
在git bash里面输入如下命令:
$ ssh-keygen -t rsa -C "xxx@xxx.com"
邮箱还是对应的上面的邮箱,输入命令后需要连续三次回车,这样可以设置免ssh密码登录
2.3 在GitHub里面绑定ssh key
上面生成的ssh密钥可以在users/用户名/.ssh
文件夹里面找到,点击资源管理器上面的查看显示隐藏文件就可以看到.ssh文件夹了。
复制id_rsa.pub里面的内容,打开GitHub,在Account settings页面选择SSH Keys,添加New ssh keys,名称随意,将复制的公钥内容粘贴进去。
2.4 验证
输入如下命令验证:
$ ssh -T git@github.com
出现提示,输入yes,然后底下出现欢迎信息,即为成功。
2.5 gitee配置
上面介绍的是github的配置,其实gitee的配置也是相似的,这里贴一下官方的教程:gitee配置ssh key
3.git工作流程
3.1 新建项目仓库
首先在你所在的项目的文件下初始化:git init
然后提交到暂存区git add .
然后提交到版本控制区git commit -m "information"
关联本地仓库与远程仓库(可以在仓库页面看到仓库地址,前缀是ssh不是https):
git remote add origin https://github.com/xu-xiaoya/Elegent.git
通过git remote -v
查看关联的远程仓库
最后就可以推送了,由于新建的远程仓库是空的,所以要加上-u这个参数
git push -u origin master
之后仓库不是空的,就不用加上-u
git push origin master
(这里默认的是本地和远程的仓库分支是一样的,都是master)
3.2 克隆远程仓库
你可以克隆上传的仓库到本地进行管理和修改:git clone repo
(注意是ssh那个链接)
此时你的本地仓库自动就关联好了,就可以直接推送了。
3.3 通过https方式进行推送
没错,其实除了ssh的方式,还可以通过https的方式进行推送,这就是为什么上面叫你用ssh的方式绑定远程仓库了,如果你想通过https也是可行的,当你推送的时候会弹出身份验证,一般是叫你输入gitee的账号和密码,github在2022年禁止了这种验证方式,因此你需要去GitHub设置token才能通过https进行推送。
4.一些问题的补充
4.1 连接端口超时
ssh: connect to host github.com port 22: Connection timed out
当出现如上错误时,可能是由于以下原因:
1.自身网络问题,GitHub可能暂时无法连接,建议检查自己的网络,可以ping测试
2.网络端口未开放,这种情况需要指定连接的端口,可以指定443端口来试试:
编辑或创建~/.ssh/config文件,添加如下内容:
Host github.com
Hostname ssh.github.com
Port 443
User git
4.2 推送报错failed to push some refs to “https://xxxx.git”
出现这种情况,你可以试试拉取仓库内容,先同步一下,再push推送,因为有一种很经典的情况就是远程仓库有README文件,而本地没有,这时就会报错。
输入git pull --rebase origin master
来同步远程仓库和本地仓库,然后git push