Git的简单使用
前言
1、自己写的代码,容易忘记,且难以找回,在多个电脑写代码需要频繁的复制粘贴
2、基于这些问题,决定进行版本管理,这里尝试使用git来管理,因为在公司中使用的是SVN,没有用过git,而Git是很重要的版本管理工具,正好拿来学习。
3、这里不会系统的讲解Git,只是将我使用到的记录到这里,如果想要详细了解可以查看廖雪峰的Git网址
4、会不定时更新
安装
1、进入官网,网址为https://git-scm.com/
2、在图中点击Download

3、我选择第一种方式安装

注:如果没有安装homebrew则无法安装成功,需要先安装homebrew
4、查看安装成功

创建版本库
1、创建仓库
- 创建一个wenyi文件夹作为工作区
- 在工作区下执行命令创建仓库
命令: git init

注:执行完,文件中存在.git文件夹
2、添加文件
2.1、创建一个first文件到wenyi文件夹中
2.2、添加文件到暂存区中
命令:git add 文件路径

2.3、提交文件到仓库中
命令:git commit -m"本次提交描述"

注:如果是首次提交,会无法提交,具体的现象和修改我这里已经无法复现了,但意思就是需要填写自己的Git账号和邮箱,按照提示的命令填写即可
2.4、查看本次修改内容
当在本地修改之后,add之前,可以查看本次修改内容
命令: git diff

版本管理
1、拉出分支
- 将已经在库上的代码拉到本地
git checkout -- 文件名
2、版本回退
- 在本地修改后但是不打算提交,想要撤销
git checkout -- 文件路径
- 在本地修改后已经提交打暂存区,但是不打算提交,想要撤销
git restore --staged 文件路径

- 版本的切换很常见,可以回退到上个版本,也可以回退到下个版本
命令:git reset --hard 版本号
3、删除文件
- 在本地将库的一个文件删除,需要告知库
git rm 文件路径
概念理解
暂存区
Git中有个暂存区的概念
这里先简单解释一下,后续仔细写
git add 就是将文件先加到了暂存区,
git commit才是将暂存区的文件整体添加到分支上
常用命令
查看log:git log
查看之前命令:git reflog
远程仓库
简单说就是将本地的git和github联系起来
1、创建SSH Key
命令:ssh-keygen -t rsa -C 邮箱

- 输入完成,直接回车,密码可以输可以不输
-
在根目录下查看到这个文件就表示成功了
图片.png
2、在GitHub上设置SSK Key
-
提前注册一个账号
-
进入到设置界面
图片.png
-
进入到SSH and GPG keys界面
-
将刚才生成的id_rsa.pub的内容复制到Key中
5.点击添加即可
图片.png
注:这个SSH Key是要与当前电脑的Git与远程仓库连接的,所以想要连接远程仓库的电脑都需要添加
GitHub上的代码所有人都可以看到
3、本地仓库与远程仓库的连接
3.1在GitHub上创建一个仓库,不再赘言
3.2设置连接
-
复制到SSH路径
图片.png
- 运行命令添加
命令:git remote add 远程仓库名称 SSH秘钥路径

这里的远程仓库名称是随便起的,好记就行,这里就用origin
3.3提交本地仓库内容到远程仓库
- 第一次加上-u,表示推送所有内容:git push -u origin master
- 之后修改完成提交,就不用加了,只推送本次修改内容
命令:git push -u origin master

3.4下载GitHub仓库到本地
命令:git clone 仓库路径

分支切换
多人对一个项目不断进行修改提交,这个过程中有可能会写入bug,而且分不清是谁写入的,在哪个修改中写入的,管理起来想想也是极为麻烦。
所以我们希望只能在自己的独立的工作区间上修改,等确定无误后才能与他人的合并。这个独立空间就是一个分支,是从主线拉取出来的,修改完成后再合并到主线中
1、拉取分支
命令:git branch 分支名

注:
自动创建的主线就是master分支
HEAD指向当前分支,有可能是主线,也可能是我们自己创建的分支
2、合并分支
2.1合并
命令:git merge 分支名

2.2冲突解决
- 多个人修改同一个内容,就会出现冲突,因为git不知道应该以哪一个分支为准
- 现冲突,不要害怕,直接与另一个冲突修改人交流最终的结果,修改完成提交即可
3、其他相关命令
查看分支:git branch
切换分支:git switch 分支名 (git checkout 分支名)
创建+切换分支:git switch -c 分支名
删除分支:git branch -d 分支名
带有描述的合并:git merge --no--ff -m"描述" 分支名
一看就懂,不演示截图了