一、git图解
1、git本地三种状态
- 已修改(modified)
- 已暂存(staged)
- 已提交(committed)
二、git本地
1、初始化
- git init 创建本地版本库(默认是master)
- git status
- git config --system 系统配置()
- git config --global 全局配置(小于config --system,大于config --local)
- git config --local 当前版本库配置
- git config --list 查看配置信息
- git config --global user.name '名称' 设置全局用户名
- git config --global user.email '邮箱' 设置全局邮件
2、获取SSH
ssh-keygen -t rsa -C "邮箱名" 连续三次回车,一般设置密码为空,最后生成两个文件id_rsa和id_rsa.pub,路径如下:
c:\用户\用户名\.ssh
id_rsa.pub为github的ssh
3、工作区操作
- git add <file>... 工作区------->暂存区(指定修改的文件)
- git add . 所以修改过的文件从工作区------->暂存区(所有修改)
- git checkout -- <file> 文件修改后,还未添加到暂存区,不想要了,还原
- git reflog 记录你的每一次命令
- git rm -rf <file>... 递归删除某个文件夹
- git rm <file> 删除文件(命令执行之后文件状态已经是暂存区了,可以还原,也可以commit)
4、暂存区
- git commit -m'备注' 暂存区----->仓库
- git commit -am'备注' 将add步骤和commit步骤合二为一,工作区----->暂存区----->仓库
- git commit --amend -m'备注' 修改上次commit的备注
- git rm --cached <file> 暂存区----->工作区(暂存区的文件恢复到未add的状态)
- git reset HEAD <file>... 暂存区----->工作区(暂存区的文件恢复到未add的状态)
5、仓库
- git log 查看commit日志(Q键退出日志界面)
- git log -n 查看最近n条记录
- git reset --hard HEAD^ 本地版本库回退到上次commit的记录
- git reset --hard commit_Id 回退到指定的某次commit
6、.gitignore
创建文件.gitignore,把要忽略的文件写到.gitignore的文件中
三、其他
1、branch
- git branch 列出所有的分支,其中带星的是当前的分支
- git branch branch_name 创建新的分支
- git checkout branch_name 切换到某个分支
- git checkout -b branch_name 创建新分支并切换到新分支,把新建分支和切换分支两个命令合成一步
- git branch -d branch_name 删除指定的分支,当前分支不能自己删除自己
- git branch -D branch_name 要删除未合并的分支
- git merge branch_name 将branch_name分支合并到当前分支
- git branch -av 显示本地分支和远程分支
2、标签
- git tag v1.0.1 创建轻量级标签
- git tag -a v1.0.2 -m'备注' 创建带有备注的标签
- git tag -d tag_name 删除标签
- git tag 查找标签(所有)
- git tag -l 'v*' 按条件查找标签
注:tag不随着分支的变化而发生变化,就是tag不随分支
tag需要手动推送到远程仓库。
3、blame
4、diff 两个文件之间的差异性
- git diff 比较的是暂存区与工作区文件之间区别
- git diff HEAD 比较的是最新的提交(版本库)与工作区之间的差别
- git diff commit_id 比较的版本库commit_id与工作区之间的差别
- git diff --cached 比较的是最新版本库与暂存区之间的差别
- git diff --cached [commit_id] 比较的是版本库与暂存区之间的差别
四、远程
1、本地仓库添加到远程仓库
- git remote add origin git@github.XXXXXX.git
- git push -u origin master 把本地库推送到远程仓库 -u是负责关联本地仓库和远程仓库
- git push 推送到远程仓库(git push origin src:desc)
2、从远程版本库拉去代码到本地版本库
- git clone
- git pull 拉取(git fetch+git merge)
- git fetch
3、远程仓库信息
- git remote show 显示所有的远程仓库
- git remote show remote_name 显示指定远程仓库的信息
4、push发生冲突
- 修改冲突文件后
- add
- commit
- push
5、远程分支
- git push --set-upstream origin branch_name 创建远程分支,把本地分支推送到远程创建远程分支,并与本地分支关联
- git push -u origin test 同上
- git checkout -b develop origin/develop 创建本地分支,并远程分支develop保持关联
- git push origin --delete develop 删除远程分支