简单易懂的git入门教程

1.背景

git相当于是一个你的文件备份库,只不过是存在.git文件里,git会帮我们管理,我们不需要不断另存为备份,而通过执行相应命令而已

2.安装与配置

直接在官网下载git,一路默认安装即可

打开终端
查看是否安装成功

git --version

配置

git config --global user.name "Wilson79"
git config --global user.email "xxxxxx"

查看当前已经设置的配置

git config --list

3.创建仓库

创建git仓库(文件夹)
法一:
cd到你要创建git的文件夹

git init
git init 文件名

法二:
cd到某个文件夹,然后直接克隆远端github项目地址

git clone https://github....

4.图例

在这里插入图片描述

5.基本用法 (commit相当于用来创建结点)

查看状态

git status

5.1 git log

查看历史记录,jk上下移动,退出按q

git log

查看历史记录和具体干了什么

git log -p

缩写历史记录

git log --oneline

显示所有缩写历史记录(针对退回时,快速找ID)

git log --oneline --all

在这里插入图片描述

modified // 表示此文件已经存在,但是被修改了
untracked // 表示此文件还从来没有被保存到暂存区过
staged // 表示暂存区,防止你提交错误文件进去,如1G的视频
在这里插入图片描述
git add .后所有文件被加到了暂存区中
在这里插入图片描述
git commit -m "备注"可以“造一颗后悔药”
git commit -m '备注'也可以
3472f9b是“后悔药”的ID 7位
在这里插入图片描述

5.2 退回版本举例

我对问题.txt文件分别添加了问题6和问题7
那么我想退回到添加了问题6的状态要如何做呢
在这里插入图片描述
在这里插入图片描述
git checkout XXX 穿越到指定的历史结点(前7位ID就可以了)
在这里插入图片描述

在这里插入图片描述
git checkout master回到主分支
在这里插入图片描述

git checkout -回到前一个版本
在这里插入图片描述

6.标签tag

比如你要出一本书,出很多版本
你在时间轴上就可以用tag标记出来
git tag -a 标签名 -m "备注" // 默认在最前的结点打标签
git tag -a 标签名 -m "备注" 950a5cb // 在id为950a5cb的结点打标签

git tag查看所有标签
git show tag名称 可以查看这个tag的信息,以及当时添加的备注
在这里插入图片描述
在这里插入图片描述
git checkout 标签名回溯至标签所在的提交
这个真的太方便了,特别是退回到书的不同版本

7.分支branch

git init的时候会创建一个默认分支master

如果你退回到了某个结点,然后对这个结点进行了另外的操作,这时你最好创建一个新分支(不然虽然系统会帮你建一个结点,但是后续无法保存下来)
在这里插入图片描述
退回到某个结点,然后直接创建新分支名相当于多了个箭头),然后切换到这个分支上,最后在这个分支上进行后续操作(修改文件,然后git add,git commit)

git branch 分支名 
git checkout 分支名

或一步到位

git checkout -b 分支名 // 创建并切换至分支

在这里插入图片描述
在这里插入图片描述

git log --oneline --all --graph // 图示全部历史记录

在这里插入图片描述
类似地可以创建三个分支
在这里插入图片描述
删除分支
在这里插入图片描述
在这里插入图片描述

8.合并分支merge

  • 将当前HEAD指向的结点和分支名X合并
    HEAD如果指向分支名,则也指向最近的结点
git merge 分支名X

一般会有冲突,需要手动fix冲突,因为git不知道你想保留什么,解决冲突后commit一下结果
在这里插入图片描述
在这里插入图片描述
=======是两个分支的分界线

  • 手动修改
    在这里插入图片描述
  • 修改完后记得要 git add 和 git commit一次
    在这里插入图片描述
  • 可以看到两个分支已经合并在一起了
    在这里插入图片描述

9.远程分支

前面提到的所有操作都是在本地进行的(包括你创建的所有分支,所有提交记录),但如果发生意外你的本地电脑的信息丢失了,那怎么办呢?如何解决这种潜在风险呢

解决方法:每次做完一个代码,我在本地仓库保存一份,在远程仓库也保存一份
在这里插入图片描述

远程代码管理服务有很多:比如github,码云等,随便用哪种都行
法一:(已经在本地写过git记录了)

在github新建一个仓库,注意不要点创建Readme.txt
git remote // 查看当前仓库链接的远程
git remote -v // 显示详细信息
git remote add 远程名称 远程地址 // 添加远程仓库

在这里插入图片描述

git remote add mytestt [email protected]:WeiSenhui/Test.git 
// 最好用ssh,用http会要求输账号密码
git push -u 远程名 分支名
// -u是为了方便以后从远端获取代码时,告诉git往哪个分支合并

第一次要用-u,以后git push就不需要加上-u了
在这里插入图片描述
法二:(git clone)
直接把地址克隆下来,然后就可以常用操作了
git clone https://github.com/WeiSenhui/Test.git 新文件名

10.多人合作

  • 核心:每次要git pull获得最新的远端代码(更新结点)

10.1本地包含远端结点则可以往上git push

  • 记忆技巧本地包含远端结点则可以往上git push,如果本地结点和远端结点有不同,则要先git pull解决冲突
    如果两个人间隔很短,都自己的更新push到了远端,那后push的人会被reject,他需要先git pull最最新的远端代码,这是可能会有,那你就要手动合并一下,这样在git push就可以了
    在这里插入图片描述
  • 如果你本地的分支结点不变,然后远端的结点数增加了(进行了commit),那你git pull是不会有冲突的,因为,远端的结点数比你多
    但是如果远端结点数增加后,你同时也在本地分支增加了新结点(你commit后的想git push,有人比你更快一步更新了远端结点数),那你git pull就会有冲突,此时需要手动合并
    在这里插入图片描述
    在这里插入图片描述

手动修改冲突后,再add commit,最后git push就可以了

结点变化记录
在这里插入图片描述

11.删除本地git库

rm -rf .git

12.git流程图

一图胜千言——转载自 biaoyansu.com
在这里插入图片描述

13.git命令图谱

在这里插入图片描述
参考1 表严肃
参考2 git配置教学

发布了182 篇原创文章 · 获赞 71 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_43827595/article/details/103939142