Git
git
初始化
初始化
-
作用:初始化
git
仓库,想要使用git对某个项目进行管理,需要git init
进行初始化 -
分区
-
工作区
我们书写代码的地方,工作的目录就叫工作区。
-
暂存区
暂时存储的区域,在
git
中,代码无法直接从工作区提交到仓库区,而是需要先从工作区添加到暂存区,然后才能从暂存区提交到仓库区。暂存区的目的是避免误操作,记录Git
操作。 -
仓库区
将保存在暂存区域的内容永久转储到
Git
仓库中,生成版本号。生成版本号之后,就可以任何的回退到某一个具体的版本。
-
git
基本命令
git status
- 作用:查看文件的状态
- 命令:
git status
- 红色表示工作区中的文件需要提交
- 绿色表示暂存区中的文件需要提交
- 编辑器中的标识
- U:未被追踪的文件,说明当前文件还没有
add
- A:已经执行了
git add
,但是还没有commit
到仓库 - M:文件被修改,但是还没有add
- C:
conflict
,文件冲突
- U:未被追踪的文件,说明当前文件还没有
git add
-
作用:将文件由 工作区 添加到 暂存区,在
git
中,文件无法直接从工作区直接添加到仓库区,必须先从工作区添加到暂存区,再从暂存区添加到仓库区。 -
命令:
git add .
注意:
空的文件夹是会被忽略掉的,如果想要提交这个文件夹,一般会在该目录下创建一个
.gitkeep
文件。
git commit
-
作用:将文件由 暂存区 添加到 仓库区,生成版本号
-
命令:
git commit -m "提交说明"
注意:
如果不写提交说明,会进入vi编辑器,没有写提交说明,是提交不成功的。
git log
作用:查看提交日志
git log
查看提交的日志git reflog
查看所有日志(被回退的日志)
git
对比
git diff
:可以查看每次提交的内容的不同
- 查看工作区与暂存区的不同
git diff
- 查看暂存区与仓库区的不同
git diff --cached
- 查看工作区与仓库区的不同,
HEAD
表示最新的那次提交git diff HEAD
- 查看两个版本之间的不同
git diff c265262 de4845b
git
重置
- 作用:版本回退,将代码恢复到已经提交的某一个版本中。
- 命令
git reset --hard 版本号
- 将代码回退到某个指定的版本(版本号只要有前7位即可)
- 当使用了
git reset
命令后,版本会回退,使用git log
只能看到当前版本之前的信息。使用git reflog
可以查看所有的版本信息。
git
忽略文件
- 作用:让一些私人文件、下载的包等不想被git管理的文件被git忽视掉,这样就不用提交
- 步骤
- 在仓库的根目录创建一个
.gitignore
的文件,文件名是固定的。 - 将不需要被git管理的文件路径添加到
.gitignore
中 - 一定要先添加好忽略文件,再添加对应的文件,如果文件已经提交了,则再添加忽略文件是不生效的
- 在仓库的根目录创建一个
- 命令
- 忽视
idea.txt
文件:idea.txt
- 忽视
css
下的index.js
文件:css/index.js
- 忽视
css
下的所有的js
文件:css/*.js
- 忽视
css
下的所有文件:css/*.*
- 忽视
css
文件夹:css
- 忽视
git分支操作
创建分支
- 创建分支,分支中的代码,在创建时与当前分支的内容完全相同。
- 命令:
git branch 分支名称
查看分支
- 在当前分支的前面会有一个
*
- 命令:
git branch
切换分支
- 在当前分支的任何操作,都不会影响到其他的分支,除非进行了分支合并。
- 提交代码时,会生产版本号,当前分支会指向最新的版本号。
- 命令:
git checkout 分支名称
创建并切换分支
- 切换分支会做两件事情
- 创建一个新分支
- 把
head
指针指向当前的分支
- 命令:
git checkout -b 分支名称
删除分支
命令
git branch -d 分支名称
注意:
不能在当前分支删除当前分支,需要切换到其他分支才能删除
合并分支
- 将其他分支的内容合并到当前分支。在合并之前需要先切换到
master
分支上 - 命令:
git merge 分支名称
- 合并完毕后再
push
一次。
注意:
如果有同学在这之前已经上传或合并过一次,那此时仓库和自己本地的代码不一致,需要先
get pull
拉取代码,保证代码一致,再git push
上传。
合并冲突
- 合并分支时,如果出现冲突,只能手动处理,再次提交,
- 一般的作法,把自己的代码放到冲突代码的后面即可
git
远程仓库
在 github
或 gitee
创建一个在线仓库,复制其 https
地址或 ssh
密钥。
git push
- 作用:将本地仓库中代码提交到远程仓库
- 命令:
git push 仓库地址 master
注意
master
分支必须写,不能省略
git clone
- 作用:完整克隆远程仓库的代码到本地
- 命令:
git clone 远程仓库地址
git pull
-
作用:将远程的代码下载到本地
-
命令:
git pull 仓库地址 master
注意
master
分支必须写,不能省略
git remote
- 作用:每次
push
操作都需要带上远程仓库的地址,非常的麻烦,我们可以给仓库地址设置一个别名 - 给远程仓库设置一个别名:
git remote add 仓库别名 仓库地址
- 检查是否关联成功:
git remote -v
- 第一次
push
到远程库:git push -u 别名 master
- 后续操作:
git push、git pull