git配置
配置用户名、邮箱
git config --global user.name "Xiaopeng Yang"
git config --global user.email 18739354512@163.com
保存用户名和邮箱,不用每次输入:
git config --global credential.helper store
查看git配置信息:
git config --global --list
创建仓库
一、在文件下使用git init 创建
或者 git init file
二、使用git clone 克隆远程仓库
git clone url
进入创建的仓库目录,会显示分支master
.get目录
.get目录存放了git仓库的所有数据,
git工作区域
工作区:自己电脑的工作目录,我们实际操作的目录
暂存区(index):临时存储区域,用于保存即将提交到git仓库的修改内容
版本控制:通过git init 创建的仓库,git存储代码和版本信息的主要位置
为什么不直接提交到本地仓库:
组织、审查
组织:选择一些相关的提交一起提交到仓库,保证提交的逻辑性。
审查:检查哪些操作不需要提交。
否则回滚会更加困难
文件状态
未跟踪untracked:新创建还未被git管理的文件
未修改 unmodified:被git管理但内容还没有修改
已修改 modified:修改后的文件还没有添加到暂存区
已暂存 staged:修改后添加到了暂存区域内的文件
文件操作
linux命令的使用:
echo 内容 > file
echo 内容 >> file:追加到这个文件的后面
git init:创建仓库
git status:查看仓库状态
查看当前仓库处于哪个分支,有哪些文件以及这些文件当前处在怎么样的一个状态
git ls-files:查看暂存区的内容
ls:查看本地文件
git add:添加到暂存区
git add .:所有文件都添加
git commit -m "别名":提交到仓库
git commit -a:跳过添加到暂存区。直接添加到仓库(只适用于已经添加到仓库的文件)
回退reset
git reset:回退版本,退回到之前的某个提交的状态
三种模式:
git reset --soft:保留工作区和暂存区的所有修改内容
git reset --hard:删除工作区和暂存区的所有修改内容
git reset --mixed:只保留工作区,删除暂存区
git log:显示提交历史
git log --oneline:显示一行
git commit -m "名称":对该次提交命名
git reflog:查看操作的历史记录
git diff:查看工作区、暂存区、本地仓库之间的差异
git diff:默认比较工作区和暂存区之间的差异
git diff HEAD:比较工作区和版本库之间的差异
git diff --cached:比较暂存区和版本库之间的差异
git diff 版本1 版本2:比较两个版本之间的差异
HEAD:表示当前分支的最新提交
git diff HEAD 版本号
git diff HEAD~(或者^号) HEAD:比较和上一个版本的差异
~号后加数字表示前几个版本
git diff HEAD ~3 HEAD 文件名:只比较该文件的差异
删除文件:
1、先rm file 在工作区删除文件,然后git add file 更新到暂存区,删除文件
2、使用git rm file:同时在工作区和暂存区删除
3、git rm --cached file:删除仓库和暂存区,保留工作区
***删除后记得提交
.gitignore
忽略掉不应该被加入到版本库中的文件
1、系统或者软件自动生成的文件
2、编译产生的中间文件和结果文件(.class、.o)
3、运行时生成的日志文件、缓存文件、临时文件
4、设计身份、密码、口令、密钥等敏感信息的文件
方式一:echo pwd.log >.gitignore :将文件添加到.gitignore中,就不会显示在库中
方式二:vi .gitignore 修改内容为 *.log 用来忽略所有以log结尾的文件
方式三:忽略以/结尾的后面的文件,temp/:temp下的文件忽略
.gitignore文件匹配原则:
1、#表注释
2、*通配任意个字符
3、?匹配单个字符
4、[ ]表示匹配列表中的单个字符,比如:[abc]表示a/b/c
5、[0-9]、[a-z]匹配两个字符范围内的字符
gitee配置
仓库地址
一、https:本地仓库上传需要用户名和密码
二、SSH:不需要用户名和密码,但需要在gitee上配置SSH公钥
克隆远程仓库
git clone url
关联远程仓库
git remote add 别名 url
git remote -v:查看远程仓库
git branch -M master:指定分支名称为master
git push -u origin master master:将本地的master分支和origin仓库的分支master关联起来如果分支名相同,可以省略一个不写
拉取远程仓库分支:git pull 远程仓库名 远程分支名: 本地分支名
分支
分支创建
git branch:查看分支
git branch 分支:创建分支
git checkout 分支:切换到该分支(有歧义,用来恢复文件)
git switch 分支:切换分支
创建的新分支会包含主分支的文件,接下来主分支和新分支并行,不会再相互干扰
分支合并
git merge 被合并的分支 合并到当前分支
git log --graph --oneline --decorate --all:查看分支合并过程
分支合并后不会被删除
分支删除:git branch -d 分支
-d:表示删除合并后的分支,-D:表示强制删除
合并冲突
合并文件的重合部分有差异会产生冲突(修改了同一文件的同一行代码),此时需要手动处理冲突,并重新提交
git diff:会显示冲突内容
git meige --abort:提交之前中止合并
rebase分支合并
工作流模型
1、Git Flow模型
2、GitHubFlow 模型
注:学习笔记来自B站GeekHour博主