Git是一款免费、开源的分布式 版本控制系统 ,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
下载地址
注意:
安装很简单,一直下一步即可。在任意的目录下右键,能看到菜单, 就表示安装成功了。
https://github.com/
注册
本地
git config --global user.email "[email protected]"
git config --global user.name "xinglovepeng2019"
注意 使用了 --global,该命令只需要运行一次就可以永久生效
配置了用户名和邮箱地址,会被写入到c:/users/用户名文件夹/.gitconfig 文件中,该文件是Git的全局配置文件,配置一次永久生效
要对某个项目使用git进行管理,需要使用git init
命令初始化git仓库
git init
会在当前目录生成一个隐藏文件夹 .git 不要去修改这个文件夹下的任意东西。
git仓库会分成三个区
工作区:我们书写代码的地方,工作的目录就叫工作区。
暂存区:暂时存储的区域,在git中,代码无法直接从工作区提交到仓库区,而是需要先从工作区添加到暂存区,然后才能从暂存区提交到仓库区。暂存区的目的是避免误操作。
本地仓库区:将保存在暂存区域的内容永久转储到 Git 仓库中,生成版本号。生成版本号之后,就可以任何的回退到某一个具体的版本。
git init
进行初始化# 初始化仓库, 在当前目录下生成一个隐藏文件夹.git
git init
工作区
添加到 暂存区
,在git中,文件无法直接从工作区直接添加到仓库区,必须先从工作区添加到暂存区,再从暂存区添加到仓库区。git add 文件名/目录名
# 将index.html添加到暂存区
git add index.html
# 将css目录下所有的文件添加到暂存区
git add css
# 将当前目录下所有的js文件添加到暂存区
git add *.js
# 添加当前目录下所有的文件
git add .
git add -A
git add --all
作用:将文件由 暂存区 添加到 仓库区,生成版本号
# 将文件从暂存区提交到仓库
git commit -m "提交说明"
# 如果是一个已经暂存过的文件,可以快速提交,如果是未追踪的文件,那么命令将不生效。
git commit -a -m '提交说明'
# 修改最近的一次提交说明, 如果提交说明不小心输错了,可以使用这个命令
git commit --amend -m "提交说明"
如果是第一次提交,需要配置提交者信息,推荐和公司邮箱一致(可以用QQ邮箱)
# git config user.name 你的目标用户名
# git config user.email 你的目标邮箱名
# 使用--global参数,配置全局的用户名和邮箱,只需要配置一次即可
git config --global user.name jepson
git config --global user.email [email protected]
# 查看配置信息
git config --list
:q 退出
# 取消配置
git config --unset --global user.name
git config --unset --global user.email
作用:查看文件的状态
命令:git status
命令:git stauts -s
简化日志输出格式
git log
查看提交的日志git log --oneline
简洁的日志信息[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bCYPmqKQ-1690623223367)(./assets/git01.png)]
作用:版本回退,将代码恢复到已经提交的某一个版本中。
git reset --hard 版本号
将代码回退到某个指定的版本(版本号只要有前几位即可)
git reset --hard head~1
将版本回退到上一次提交
当使用了git reset
命令后,版本会回退,使用git log
只能看到当前版本之前的信息。使用git reflog
可以查看所有的版本信息
在仓库中,有些文件是不想被git管理的,比如数据的配置密码、写代码的一些思路,node_modules等。git可以通过配置从而达到忽视掉一些文件,这样这些文件就可以不用提交了。
.gitignore
的文件,文件名是固定的。.gitignore
中# 忽视idea.txt文件
idea.txt
# 忽视css下的index.js文件
css/index.js
# 忽视css下的所有的js文件
css/*.js
# 忽视css文件夹
css
分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。
如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fSCAFABW-1690623223368)(./assets/fenzhi.png)]
在git中,分支实质上仅仅是一个指针,每次代码提交后,这个分支指针就会向后移动,保证一直指向最后一次提交的的版本。git中使用HEAD指向当前分支
git branch 分支名称
创建分支,分支中的代码,在创建时与当前分支的内容完全相同。master
的主分支。git branch dev
,创建了一个叫做dev的分支git branch
可以查看所有的分支,*
HEAD
,永远会指向当前分支git checkout 分支名称
切换分支 HEAD指针指向了另一个分支git checkout -b 分支名称
创建并切换分支git branch -d 分支名称
可以删除分支master
分支是可以删除的,但是不推荐那么做。git merge 分支名称
将其他分支的内容合并到当前分支。master
分支中执行git merge dev
将dev
分支中的代码合并到master
分支