Git
第1章 Git的概述
1.1 什么是git
Git是一个分布式的版本控制软件 相当于QQ,office等需要安装到电脑上才可以使用的工具 版本控制:类似于毕业论文,写文案等,需要反复修改和保留历史的数据
1.2 为什么要做版本控制
要保留之前的数据,方便回滚和修改
1.3 Git的安装
https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
第2章 Git的安装(Linux)
2.1 安装步骤如下
#安装Git yum install git -y #配置git使用用户 git config --global user.name "yfc" #配置git使用邮箱 git config --global user.email "" #语法高亮显示 git config --global color.ui true #查看有哪些用户 git config --list #查看设置的用户 cat .gitconfig
第3章 Git初始化
想要对目录进行版本控制,需要如下步骤
3.1 进入要管理的文件夹,执行初始化命令
mkdir /data cd /data git init
3.2 隐藏文件的介绍
[ data]# ll .git total 12 drwxr-xr-x 2 root root 6 Mar 23 21:14 branches #分支目录 -rw-r--r-- 1 root root 92 Mar 23 21:14 config #定义项目特有的配置选项 -rw-r--r-- 1 root root 73 Mar 23 21:14 description #仅供git web程序使用 -rw-r--r-- 1 root root 23 Mar 23 21:14 HEAD #指示当前的分支 drwxr-xr-x 2 root root 242 Mar 23 21:14 hooks #包含git钩子文件 drwxr-xr-x 2 root root 21 Mar 23 21:14 info #包含一个全局排除文件(exclude文件) drwxr-xr-x 4 root root 30 Mar 23 21:14 objects #存放所有数据内容,有info和pack两个子文件夹 drwxr-xr-x 4 root root 31 Mar 23 21:14 refs #存放指向数据(分支)的提交对象的指针
第4章 Git的常规使用
4.1 Git的三个区域
4.2 git如何提交目录文件到本地仓库
4.2.1 第一个里程: 创建几个文件
cd /data touch file{1,2,3}
4.2.2 第二个里程: 提交文件到暂存区
git add .
4.2.3 第三个里程:提交文件至本地仓库
git commit -m "新增3个文件"
4.2 查看git的状态
git status
4.3 修改文件的名称
git mv file1 file4 git commit -m "修改file1为file4"
4.4 如何进行文件比对
4.4.1 工作目录和暂存区进行比对
1. 此时git的三个区域都有file2文件,往file2文件写入内容 echo 123 > file2 2. 进行文件比对 git diff file2
4.4.2 本地仓库和暂存区进行比对
1. 把工作区的文件提交到暂存区 [ data]# git add . 2. 进行文件比对 git diff --cached file2 3. 提交后在比对则暂存区和本地仓库(内容相同) git commit -m "file2" git diff --cached file2
4.5 git commit
4.5.1 作用
相当于虚拟机的镜像、任何操作都被做了一次快照,可恢复到任意一个位置
4.5.2 查看历史的git commit快照操作
[ data]# git log commit 97f0c9afe1af1fb7251ed93f5283475fb7ca9620 Author: yfc <> Date: Mon Mar 23 22:15:24 2020 +0800 file2 commit b236e2fe006fc8d7428da6fa920ab2a40c2985da Author: yfc <> Date: Mon Mar 23 21:54:43 2020 +0800 修改file1为file4 commit 89f5a806cf57c10ebc97c7ed70078ec174695f4f Author: yfc <> Date: Mon Mar 23 21:30:13 2020 +0800 新增3个文件
4.5.3 简单的显示
git log --oneline #就是把上面的信息,以一行显示出来且把每次对应的hash值,取前7位!结果如下 [ data]# git log --oneline 0a819ad file2 28bc994 修改file1为file4 65154df 新增3个文件
4.6 git如何实现回退
4.6.1 第一种情况:本地目录误操作
[ data]# cat file2 123 [ data]# >file2
思路
用暂存区的目录覆盖本地目录
命令如下
[ data]# git checkout file2 [ data]# cat file2 123
4.6.2 第二种情况:本地目录误操作且提交至暂存区
[ data]# cat file2 123 [ data]# >file2 [ data]# git add .
思路
先用本地仓库的目录覆盖暂存区的,在用暂存区的覆盖本地目录
命令如下
1. 先覆盖暂存区 [ data]# git reset HEAD file2 2. 再覆盖本地目录 [ data]# git checkout -- file2 3. 检查file2文件 [ data]# cat file2 123
4.6.3第三种情况:如果提交多次至本地仓库,怎么回退
[ data]# echo yfc >> file2 [ data]# cat file2 123 yfc [ data]# git add . [ data]# git commit -m "file2文件新增内容yfc" [ data]# echo yfc.com >> file2 [ data]# cat file2 123 yfc yfc.com [ data]# git add . [ data]# git commit -m "file2文件新增内容yfc.com"
需求1:回退到file2文件最初始的状态
[ data]# git log --oneline 61f27d6 file2文件新增yfc.com 79da77b file2文件新增yfc 97f0c9a file2 b236e2f 修改file1为file4 89f5a80 新增file1-3 [ data]# git reset --hard 97f0c9a [ data]# cat file2 123
需求2:回退到file2文件中有yfc内容时的状态
[ data]# git reflog 97f0c9a {0}: reset: moving to 97f0c9a 61f27d6 {1}: commit: file2文件新增yfc.com 79da77b {2}: commit: file2文件新增yfc 97f0c9a {3}: commit: file2 b236e2f {4}: commit: 修改file1为file4 89f5a80 {5}: commit (initial): 新增file1-3 [ data]# git reset --hard 79da77b HEAD is now at 79da77b file2文件新增yfc [ data]# cat file2 123 yfc
第5章 Git分支
5.1 什么是分支
5.2 分支的作用
分支可以给使用者提供与主干隔离的环境,以免影响到主干,在分支上开发完新功能测试好以后,可以合并到主干,这样即不影响主干也不会耽误开发的进度
5.3 分支的有关命令
5.3.1 查看分支
git branch
5.3.2 创建分支
git branch 分支名称 #例如 git branch dev
5.3.3 切换分支
git checkout dev
5.3.4 删除dev分支
git branch -d 分支名称 #例如 git branch -d dev 注意:删除分支一定要在主干上去删除分支
5.4 如何合并分支
5.4.1 第一个里程: 在dev分支上创建新的文件,并提交(如果不提交,切换到master会看到在dev分支上创建的文件)
git branch dev touch file{6,7} git add . git commit -m "新增文件file5和file6"
5.4.2 第二个里程: 在master上创建新文件(因为master上可能有别的人员提交的代码,这里就是模仿)
git checkout master touch file{9,10} git add . git commit -m "新增文件file9和file10"
5.4.3 第三个里程: dev分支合并master上的内容
#因为此时可能有别的人员提交了代码到master上,所以我们要先把自己master上的内容合并到master上 记得切换分支在合并 例如,想要把master的内容合并到dev上,要先切换到dev上,在合并 git checkout dev git megre master -m "dev合并master内容"
5.4.4 第四个里程: 切换到master上,再把dev上的内容合并到master上
[ data]# git branch * dev master [ data]# git checkout master Switched to branch ‘master‘ [ data]# ls file2 file3 file4 file7 file8 [ data]# git merge dev Updating 697395f..15cde5e Fast-forward file5 | 0 file6 | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 file5 create mode 100644 file6 [ data]# ls file2 file3 file4 file5 file6 file7 file8 #可以看到现在master有全部的文件了
5.5 如何解决冲突合并
5.5.1 模拟环境
[ data]# git branch dev [ data]# git branch dev * master [ data]# ls file2 file3 file4 file5 file6 file7 file8 [ data]# cat file2 123 yfc [ data]# echo 111 >> file2 [ data]# git add . [ data]# git commit -m "修改file2文件" [ data]# git checkout dev [ data]# echo 111 >> file2 [ data]# git add . [ data]# git commit -m "修改file2文件"
5.5.2 dev分支合并master的内容
[ data]# git checkout dev [ data]# git merge master Auto-merging file2 CONFLICT (content): Merge conflict in file2 Automatic merge failed; fix conflicts and then commit the result. [ data]# git merge master error: ‘merge‘ is not possible because you have unmerged files. hint: Fix them up in the work tree, hint: and then use ‘git add/rm <file>‘ as hint: appropriate to mark resolution and make a commit, hint: or use ‘git commit -a‘. fatal: Exiting because of an unresolved conflict. #此时会报错
5.5.3 解决报错
修改文件 [ data]# cat file2 123 yfc <<<<<<< HEAD 222 ======= 111 >>>>>>> master [ data]# vim file2 123 yfc 222 111 [ data]# git add . [ data]# git commit -m "megre 合并"
5.5.5 切换到master上合并dev的内容
[ data]# git checkout master Switched to branch ‘master‘ [ data]# git merge dev Updating 179bd1c..f5bb452 Fast-forward file2 | 1 + 1 file changed, 1 insertion(+)
第6章 Git标签
6.1 作用
标签也是指向了一次commit提交,是一个里程碑式的标签,回滚打标签直接加标签号,不需要加唯一字符串不好记
6.2 标签的相关命令
6.2.1 创建标签
#格式 git tag -a "标签名字" -m "描述信息" [ data]# git tag -a "v1.0" -m "第一版本"
6.2.2 查看有哪些标签
git tag
6.2.3 查看标签的的具体信息
git show 标签名字 #例如 git show v1.0
6.2.4 删除标签
git tag -d 标签名字 #例如 git tag -d v2.0
第7章 GIT配合远程仓库
7.1 注册github或者公司自己搭建gitlab,把代码推送上去
此处步骤略
7.2 初次在公司下载代码
1. 克隆远程仓库代码 git clone 远程仓库地址 2. 切换分支进行开发 git checkout dev 3. 开发完毕,提交代码 git add . git commit -m ‘xx‘ git push origin dev
7.3 回家以后,继续开发
1. 切换到 git checkout dev 2. 拉取最新代码 git pull origin dev 3. 进行开发 4. 提交代码 git add . git commit -m ‘xx‘ git push origin dev
相关推荐
formula 2020-11-12
huhongfei 2020-11-05
乾坤一碼農 2020-10-27
liumengyanysu 2020-10-22
E哥的aws认证攻略 2020-10-15
tianyafengxin 2020-10-08
guying 2020-10-05
好脑筋不如烂笔头 2020-09-17
nebulali 2020-09-11
佛系程序员J 2020-09-15
fenggit 2020-09-15
JustHaveTry 2020-09-11
兄dei努力赚钱吧 2020-09-06
IngeniousIT 2020-08-25
liumengyanysu 2020-08-17
guying 2020-08-16