Git
安装环境
-
git的两种使用方式
- 1、git gui -- 图形化界面方式
- 2、git bash -- 命令行方式
git的命令
初始化 git init
- 作用:初始化git仓库
git仓库
-
git仓库分为三个区
- 1、工作区:写代码的地方就是工作区。
- 2、暂存区:暂时存储的区域,在git中无法直接从工作区提交到仓库区,需要先提交到暂存区
- 3、 本地仓库:将保存在暂存区的内容永久转存到本地仓库,生成版本号。
git的基础命令
git status
-
作用:查看文件的状态
- 红色:工作区的内容没有提交
- 绿色:表示暂存区中还有内容没有保存到本地仓库
-
编辑器中的标识
- U:未被追踪的文件,说明还没有把文件提交到暂存区(add)
- A:文件提交到暂存区,但没有保存到本地仓库
- M:文件被修改,且没有提交
- C:文件冲突
git add
-
作用:将文件从工作区提交到暂存区
-
命令: 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
- 将文件从暂存区提交到本地仓库,生成版本号。
# 将文件从暂存区提交到仓库
git commit -m "提交说明"
# 如果不写提交说明,会进入vi编辑器,没有写提交说明,是提交不成功的。
git commit # 需要使用vi输入内容
# 如果是一个已经暂存过的文件,可以快速提交,如果是未追踪的文件,那么命令将不生效。
git commit -a -m '提交说明'
# 修改最近的一次提交说明, 如果提交说明不小心输错了,可以使用这个命令
git commit --amend -m "提交说明"
git log
- 作用:查看提交日志
git reflog
- 作用:查看所有的日志
git log --oneline
-作用:每一个提交日志在显示
git diff
- 作用:可以查看每次提交的内容的不同
# 查看工作区与暂存区的不同
git diff
# 查看暂存区与仓库区的不同
git diff --cached
# 查看工作区与仓库区的不同,HEAD表示最新的那次提交
git diff HEAD
# 查看两个版本之间的不同
git diff c265262 de4845b
git reset
-
作用:版本回退
-
git reset --hard 版本号将代码回退到某个指定的版本(版本号只要有前7位即可) -
git reset --hard head~1将版本回退到上一次提交- ~1:上一次提交
- ~2:上上次提交
- ~0:当前提交
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默认的主分支是
master - 例如:
git branch dev,创建一个dev分支
查看分支
git branch:查看所有的分支- 当前的分支前面有一个
*号
切换分支
git checkout 分支名称
- 作用:切换分支
- 当前分支上的操作都不会影响其他分支,除非合并分支
- 提交代码时,会生产版本号,当前分支会指向最新的版本号。
创建并切换分支
git checkout -b 分支名称
- 作用:创建并切换分支
合并分支
git merge 分支名称
- 作用:将其他分支合并到当前的分支
合并分支的冲突
- 如果同一个文件中,有多个分支需要合并,这时就容易产生冲突
- 合并分支时,如果出现冲突,只能手动处理,再次提交。一般的作法,把自己的代码放到冲突代码的后面即可。
删除分支
git branch -d 分支名称
- 作用:删除分支
注意:不能在当前的分支上删除自身分支。
git远程仓库
推送代码
git push
- 作用:将本地仓库中的代码提交到远程仓库
git push 仓库地址 master在代码提交到远程仓库。注意master分支必须写,不能省略- 第一次使用,需要填写github|gitee的用户名和密码
拉取代码
git pull
-
作用:将远程的代码下载到本地
-
通常在push前,需要先pull一次
-
git pull 仓库地址 master在代码提交到远程仓库。注意master分支必须写,不能省略
git clone
- 作用:将远程仓库的代码完整的克隆到本地
git clone [远程仓库地址]- 克隆会默认远程仓库的项目的名字。克隆项目名字可以修改。例如,
git clone [远程仓库地址] [本地项目名]
设置远程仓库的别名
git remote
- 由于每次推送代码都需要带上远程仓库的地址,
git remote命令就是给远程仓库设置一个别名,方便操作。
# 给远程仓库设置一个别名
git remote add 仓库别名 仓库地址
git remote add autumnFish git@github.com:autumnFish/test.git
# autumnFish
git remote remove autumnFish
# 检查是否关联成功
git remote -v
# 一般情况需要先pull一下:git pull origin master
# push到远程库:
git push -u autumnFish master
git push
git pull
# git clone的仓库默认有一个origin的别名