通过git进行本地项目代码备份与版本控制

随笔2个月前发布 猫吃鱼
49 0 0

在本地进行项目开发时,由于代码需要进行多次迭代,因此备份代码是不可缺少的。因此使用版本控制系统来进行代码备份是很有必要的。本文将介绍有关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

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...