git是一款免费、开源的版本控制系统,用于高效地处理任何或大或小的项目。
作用:
文件存档备份
文件版本管理
多人协同合作(自动合并)
工作区:处理工作的区域
暂存区:临时存放的区域
本地git仓库:最终的存放区域
工作区:在你的电脑看到的目录
暂存区:在.git文件夹内的index中,以二进制记录
版本库:整个.git文件夹,也认为是本地仓库
配置全局的用户名和邮箱的作用:在以后的提交中,可以查看本次提交的记录是谁提交的。
git config 固定命令:设置git相关配置
--global 全局配置:一次配置,整机在使用git时都生效
git config --global user.name 你的用户名
git config --global user.email 你的邮箱地址
配置后,查看是否配置成功
git config --list
举例:
以后想要修改,可以重新执行一次配置命令覆盖即可
# 初始化git 仓库,产物:.git文件夹
git init
.git是个隐藏文件夹
举例:
本地创建一些文件
举例:
# 这里.的意思是:当前目录下所有改变都暂存
git add .
举例:
git commit -m "提交的内容的说明"
相当于存档了一次,在版本库中产生一次提交记录(并生成版本号)
本次存档,不耽误我们在工作区继续编写项目。
举例:
git log
举例:
git log --oneline
举例:
git reflog
举例:
git status
举例:
只有确实commit存档过,而且存到的.git文件夹要存在,才可以回退!
git reset --hard 版本号
举例:
先查版本号:
再回退:
1.作用:某些文件或文件夹不想让git进行跟踪管理,也就是不想提交到版本库。
2.怎么新建git忽略文件:在.git文件夹同级目录下,新建.gitignore文件,并写入忽略规则。
3.可以编写的规则:
# 忽略某个指定文件
password.txt
# 忽略文件夹
css
# 忽略文件夹下的某个文件
css/a.css
# 忽略文件夹下的某类文件
css/*.css
4. 查看git追踪到了哪些变化:git status
被忽略的文件/文件夹不会被git追踪到,会被忽略掉
5. git常用忽略配置
(1)创建不同分支的作用:
不同的分支代表不同的功能,可以独立开发和维护提交版本的记录,每个分支是互相独立的,和别的分支互不影响,尤其是多人开发同一项目,可以分别控制自己的代码。
(2)如何编写代码:
1️⃣切换到不同功能的分支去写业务代码。
2️⃣暂存。
3️⃣提交(会在对应的分支下产生提交记录,不会影响到别的分支)。
4️⃣某个功能模块开发完毕后,把子分支的代码合并到master主分支中,保证最后master主分支有所有模块的代码,最后统一交付。(项目开发完毕后,主分支里最后一次提交的记录就是我的完整项目。)
(1)分支的本质其实就是HEAD指针标记,它可以影响工作区的代码。
(2)每次代码提交,此HEAD指针都会往后移动一次,保证指针的(并且工作区里的)都是最后一次提交。
(3)比如刚才我们第二次提交后,HEAD指针指向这里,也是工作区最后一次提交的版本。
当我们敲击命令 git reset --hard 版本号 时,HEAD指针会移动。
(4)HEAD指针指向哪个版本,当前指向的版本代码就会覆盖到当前的工作区和暂存区。
(1)创建分支
git branch 分支名
注意:创建分支后,不会自动切换分支
(2)查看当前版本的库的所有分支
git branch
(3)切换分支
git checkout 分支名
注意:第一次创建并切换到此分支,这里你会发现master分支上的所有代码(和当前节点所有提交记录)都被复制了过来,在这个基础上,接着往后开发就行,不是你的页面不能碰!
举例:
(1)切换到你要合并的目标分支上,这里以master主分支为例子
git checkout master
(2)合并分支
# 把目标分支名下的所有记录,合并到当前分支下
git merge 目标分支名
举例:
如果2个人同时改了同一个文件,那么这2个人提交代码时就会产生冲突
举例:(vscode显示效果)