【GeekHour】一小时Git教程_哔哩哔哩_bilibili
1、git:分布式版本控制工具软件。管理软件开发项目中的源代码文件
2、版本控制 集中式版本控制 分布式版本控制 多人协作开发
版本:软件版本和文件版本(保存重要的历史记录,或者用来恢复数据)
3、版本控制软件的基础功能:1>保存和管理文件。2>提供客户端工具进行访问。3>提供不同版本文件的比对功能
4、集中式、分布式版本控制软件的概念
5、工作区-->git add-->暂存区-->git commit-->本地库
6、git是一个分布式版本控制系统,使用一个特殊的叫做仓库的数据库来记录文件的变化。仓库中的每个文件都有一个完整的版本历史记录。
7、安装和初始化配置,配置完成之后就可以使用git来管理代码了
8、新建仓库
新建一个版本库来对本地的代码进行管理。版本库又叫仓库,简称RePo
可以把仓库理解成一个目录,这个目录里面所有的文件都可以被Git管理起来。
创建一个仓库的方法:只需要把一个目录变成Git可以管理的仓库就可以了。
方法一: git init(在自己电脑本地直接创建一个仓库)。
方法二: git clone(从远程服务器上克隆一个已经存在的仓库)
9、Git的工作区域和文件状态
Git的本地数据管理分为三个区域:工作区(也叫做工作目录或者本地工作目录,就是我们自己电脑上的目录)、暂存区(临时存储区域。用于保存即将提交到Git仓库的修改内容)、本地仓库(就是使用git init创建的仓库)
git中文件的状态:未跟踪(新创建的,还没有被Git管理起来的文件)、未修改(已经被Git管理起来,但是文件的内容没有发生变化,还没有被修改过)、已修改(修改,但是还没有存放在暂存区的文件)、已暂存
10、添加和提交文件
git status 查看当前仓库和文件的状态
git add . 添加到暂存区
git commit 提交到本地仓库中(这个命令只会提交暂存区中的文件,而不会提交工作区中的其他文件)
git commit -m "指定提交的信息,会被记录在仓库中"
git log 查看提交记录
11、git reset回退版本
退回到之前的某一个提交的状态
git reset的三种模式:
git reset --soft 表示回退到某一个版本,并且保留工作区和暂存区的所有修改内容
git reset --hard 表示回退到某一个版本,并且丢弃工作区和暂存区的所有修改内容(谨慎使用)
git reset --mixed mixed这个参数就是介于soft和hard这两个参数之间,他表示回退到某一个版本,并且只保留工作区的修改内容,而丢弃暂存区的修改内容
git reset --mixed 是 git reset 的默认参数
// git reset --soft + 要回退的版本id
// git reset --hard HEAD^
12、使用 git diff 查看差异
可以用来查看文件在工作区、暂存区以及版本库之间的差异
还可以查看文件在两个特定版本之间的差异(后面加上要比较两个版本的id),或者文件在两个分支的差异
git diff 后面如果什么都不加的话,会默认比较的是工作区和暂存区
13、使用 git rm 来删除文件
14、使用 .gitignore 忽略文件
这个文件的作用就是忽略掉一些本不应该被加入到版本库中的文件
这样可以让体积仓库更小、更加干净
15、注册 GitHub 账号
16、SSH 配置和克隆仓库
https方式:这种方法在我们把本地代码 push 到远程仓库的时候,需要验证用户名和密码
ssh方式:不需要验证用户名和密码,但是需要在 GitHub 上添加 SSH 公钥的配置,更加安全,更加方便
17、关联本地仓库和远程仓库
同步本地仓库和远程仓库的修改内容,让他们的状态保持一致。
git pull(把远程仓库的修改拉取到本地仓库)
git push(把本地仓库的修改推送给远程仓库)
18、分支简介和基本操作
创建新的分支:git branch 分支名称
切换分支:git checkout 分支名称
切换分支:git switch 分支名称
合并分支,当前所在的分支就是合并后的目标分支:git merge 将要被合并的分支
查看分支列表:git branch
删除分支(已合并):git branch -d 分支名称
(未合并):git branch -D 分支名称
19、解决合并冲突
一般情况下,如果两个分支的修改内容没有重合的部分的话,合并分支就很简单,git会帮助我们自动合并
但是如果两个分支修改了同一个文件的同一行代码,Git就不知道要保留哪个分支的保存内容了,也就产生了冲突。
git merge --abort:终止合并
20、回退和rebase(变基)
可以在任意分支上执行 git rebase 命令