git常用命令
一.git原理和流程介绍
git仓库分为四个区
--Workspace: 工作区(即我们的目录)
--Index/Stage: 暂存区 (相当于本地仓库与目录的中间)
--Repository: 本地仓库
--Remote: 远程仓库
git工作流程图
二.常用命令介绍
查看配置状态命令
$ cat ~/.gitconfig 查看用户配置
$ cat .git/config 查看当前项目的git 配置
$ cat .git/HEAD 查看当前HEAD指向
$ git log --graph 图形化显示当前日志
$ git status 查看工作区和暂存区状态
remote命令
$ git remote add [shortname] [url] 添加远程版本库
$ git remote rm name # 删除远程仓库关联
$git remote rename old_name new_name # 修改仓库名
$ git remote -v 显示所有远程仓库
$ git remote show [remote] 显示远程仓库的信息
$ git push --set-upstream <远程仓库别名> <分支名> 远程分支与本地分支关联
branch命令
$ git branch 查看本地分支
$ git brabch -a 查看所有分支包括远程分支
$ git branch -vv 查看本地分之对应的远程分支
$ git checkout "分支名" 切换分枝
$ git checkout -b "分支名" 创建本地分支
$ git branch -d (branchname) 删除分支
stash命令
$ git stash save "别名" 临时将工作区内容保存在堆栈中(该文件不受任何pull影响)
$ git stash apply "stash@{index}" 将堆栈中文件取出到工作区,不删除记录
$ git stash list 查看存储记录
diff命令
--后面接文件名只显示文件差异,不接显示全部
$ git diff 命令比较文件的不同,即比较文件在暂存区和工作区的差异
$ git diff HEAD 比较工作区与本地仓库差异
$ git diff--cache 比较缓存区与仓库差异
$ git diff branchname..branchname filename 查看两个分支文件对比
merge命令
$ git merge <分支名> --squash 将分支合并到主分支,并不会生成新的提交,内容放于工作区和暂存区,由人手动提交(head处于主分支下)
流程命令详细介绍
执行所有回退命令时请小心
--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:
$ git checkout . 放弃工作区全部修改退回到暂存区内容(也可以将点换成某个文件)
$ git checkout HEAD . 放弃工作区全部修改退回到本地仓库内容
$ git add . 将工作区所有文件提交到暂存区
$ git reset HEAD "file" 将暂存区的修改撤销掉,工作区内容不受影响
$ git commit -m "提交说明“ 将暂存区内容提交到本地仓库
$ git commit -am "提交说明" add和commit的合写,将工作区内容直接提交到本地仓库
$ git reset --hard "HEAD^" 回退到上一个版本
$ git reset --hard "版本号" 退回指定版本号
$ git fetch <远程仓库别名> <分支名> 是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中
$ git push <远程仓库别名> <本地分支名>:<远程分支名> 将本地分支推送到远程
$ git push <远程仓库别名> --all. 将所有分支push
$ git pull <远程主机名> <远程分支名>:<本地分支名> 将远程主机分支拉取过来,如果与本地仓库(工作区,缓存区更改不会)相同侧不更改,如果与本地仓库不同则与本地仓库合并,合并过程中有冲突就要解决来自工作区,本地仓库和远程仓库的冲突,并把修改到本地仓库与工作区
--git pull 详解
pull命令实际上是fetch 与merge的组合件