Git学习手册
- Git是分布式版本控制系统
- Git关心文件数据的整体是否发生变化,大多数其他系统只关心文件内容的具体差异
- 大多数操作只在本地执行
- Git会对保存的数据进行内容的校验和计算。使用SHA-1算法计算数据的校验
- Git三种状态:已提交,已修改、已暂存
- Git相关名词
1.WorkSpace:工作区,Index/Stage:暂存区,Repository:仓库区,Remote:远程仓库
基础操作:
- Git使用
- 初始化: git init
- 新建目录 : git init folder_name;
- 下载项目 git clone url
- 显示当前的Git配置:git config --list
- git config -e:编辑配置文件
- git config --global user.name “xxxx.”
- git config --global user.email “xxx”
- git add xxxx : 添加文件到暂存区
- git add . :添加所有文件
- git add -p: 添加文件前确认
- git rm xxx.file:删除工作区文件
- git rm ***.txt :删除工作区的文件
- git mv xxx.txt sa :更改名称并且存入暂存区
提交代码
:
- git commit -m"message" 将暂存区的代码提交到仓库区
- git commit xxx.file xxx.fil e []
- git commit -v:显示所有diff信息
- git commit --amend -m"xxx":使用新的commit 替换前面的消息
列出分支
- git branch
- git branch -r
- git branch -b “xxxss”
- git branch -d ss // 删除某个分支
- git pull xxxx[branch]: 拉取远程仓库的变化 和本地分支合并
push
- git push [remote][branch]: 上传本地代码分支到远程仓库
- git push [remote]–force: 强行推送当前分支到远程仓库
- git push [remote] --all:推送所有分支到远程仓库
tag
- git tag [tag]:新建一个tag
- git push [remote][tag]:提交指定tag
- git checkout -b[branch][tag]😕// 新建一个tag 指向某个tag
查看信息
- git status:显示有变更的文件
- git log:显示当前分支的版本历史
- git log --stat:显示commit历史,以及每次commit发生变更的文件
- git log -S[keyword]:根据提交历史,根据干建瓷
- git show --name-only [commit]: 显示某次提交发生变化的文件
- git show[commit]:[filename]:显示某次提交时,某个文件的内容
- git reflog:显示当前分支的最近几次提交
- git blame[fille]:显示指定文件是什么人在什么时间修改过
- git diff:显示暂存区和工作区的差异
远程同步
- git fetch:下载远程仓库的所有变动
- git remote -v:显示所有远程仓库
- git remote show [remote]: 显示某个远程仓库的信息
- git push --all:添加所有分支到远程仓库
撤销
- git checkout . :恢复所有文件到工作区
- git checkout [commit][file]:回复某个commit的制定文件到暂存区和工作区
- git reset --hard:重置暂存区与工作去,与上次commit保持一致
Git忽略文件
- 忽略中间文件、忽略操作系统自动生成的文件、忽略自己的带有敏感信息的配置文件
- 方法:创建.gitignore文件,里面写忽略的配置信息