git仓库分为3个区:
- 工作区 :书写代码的地方,工作的目录就是工作区。
- 暂存区:暂时存储的区域。因为代码无法直接从工作区提交到仓库区,而是需要先从工作区添加到暂存区,然后再从暂存区提交到仓库区,避免了误操作。
- 本地仓库区:将保存在暂存区域的内容永久转储到 Git 仓库中,生成版本号。生成版本号之后,就可以任何的回退到某一个具体的版本。
git基本命令
git init //初始化仓库, 在当前目录下生成一个隐藏文件夹.git
git status //查看文件的状态.红色表示工作区中的文件,绿色表示暂存区中的文件
git add 文件名或者目录名 //将文件或文件夹由工作区添加到暂存区。
/*下面的方法都是添加当前目录下的所有文件*/
git add .
git add -A
git add --all
git commit //将文件由暂存区添加到仓库区,生成版本号
git commit -m '提交说明' //后面一定要写提交说明,不然不成功
git commit -a -m //若是一个暂存过的文件,则快速提交。若是新添加的文件,该命令无效
git commit -amend -m '提交说明' //修改最近一次的提交说明
/*第一次提交时需要配置用户名和邮箱*/
git config --global user.name xxx//xxx为用户名
git config --global user.email xxxx@qq.com//xxxx@qq.com为邮箱
git config --list //查看配置信息
git config --unset --global user.email //初始化邮箱
git config --unset --global user.name //初始化用户名
git log //查看提交的日志
git log --oneline //查看简洁的日志信息
/*git对比*/
git diff //查看工作区和暂存区的不同
git diff --cached //查看暂存区和仓库区的不同
git diff HEAD //查看工作区和仓库区的不同,HEAD表示最新提交的一次
git diff 版本号 版本号 //查看两个版本之间的不同(版本号可以通过git log获取)
/*git reset用于版本回退,将代码回复到已经提交的某一个版本中*/
git reset --hard 版本号 //将代码回退到某个指定的版本(版本号只要有前几位即可)
git reset --hard head~1 //将版本回退到上一次提交
head~1 //上一次提交
head~2 //上上次提交
head~0 //当前提交
git reset --soft 版本号 //只重置仓库区
git reset --mixed 版本号 //重置仓库区和暂存区【默认】[常用]
git reset 版本号 //效果与--mixed一致
git reset --hard 版本号 //重置仓库区和暂存区和工作区。[常用]
/*gitignore忽视文件*/
//在仓库的根目录创建一个'.gitignore'的文件,文件名是固定的.将不需要被git管理的文件路径添加到'.gitignore'中
//忽视xxx文件
index.js //例
//忽视.gitignore文件
.gitignore
//忽视xxx文件夹下的xx文件
code/index.js //例
//忽视xxx下的所有特定后缀的文件
code/*.js //例
//忽视xxx文件夹
code //例
git分支命令
在git中,分支实质上仅仅是一个指针,每次代码提交后,这个分支指针就会向后移动,保证一直指向最后一次提交的的版本。git中使用HEAD指向当前分支。
注意:一定要在提交到仓库之后才能看到分支
git branch //查看所有分支
git branch 分支名称 //创建分支,分支中的代码,在创建时与当前分支的内容完全相同。
git checkout -b 分支名称 //创建并切换分支。(创建一个新分之后,自动把head指针指向当前分支)
git branch -d 分支名称 //删除分支(不能再当前分支删除当前分支,需要切换到其他分支才能删除)
git merge 分支名称 //将其他分支的内容合并到当前分支(例:在master分支中执行`git merge dev 将dev分支中的代码合并到master分支)
git合并冲突解决
若合并时有冲突,只能手动处理.将提示冲突的内容给删除了,再次提交,一般的作法,把自己的代码放到冲突代码的后面即可。