1、git工做流程

- Workspace工做区:是当前工做目录,能够在此目录编辑文件
- Index缓存区:add指令,保存文件的改动
- Repository仓库:commit指令,将屡次的文件改动最后提交
- Remote远程仓库:能够将本地仓库代码传到远程仓库上,方便多人远程协做
2、经常使用操做
一、初始化仓库
$ git init
二、加到缓存区
# 指定文件,提交到暂存区
$ git add <filename>
# 将工做区的变化提交到暂存区,包括文件修改和新增,可是不包括删除的文件
$ git add .
# 将工做区的变化提交到暂存区,包括新增,删除和修改的全部内容
$ git add -A
三、提交到版本库
# 将修改从暂存区提交到版本库,并添加备注message
$ git commit -m “message”
四、查看信息
# 查看上次提交以后是否有修改
$ git status
# 查看上次提交以后是否有修改,简短输出结果
$ git status -s
# 查看还没有缓存的改动
$ git diff
# 查看已缓存的改动
$ git diff -cached
# 查看已缓存的与未缓存的全部改动
$ git diff HEAD
# 显示当前分支的版本历史
$ git log
# 显示commit历史,以及每次commit发生变动的文件
$ git log --stat
# 显示指定文件相关的每一次diff
$ git log -p [file]
五、回退操做
# 恢复暂存区的指定文件到工做区
$ git checkout [file]
# 恢复某个commit的指定文件到暂存区和工做区
$ git checkout [commit] [file]
# 恢复暂存区的全部文件到工做区
$ git checkout .
# 重置暂存区的指定文件,与上一次commit保持一致,但工做区不变
$ git reset [file]
# 重置暂存区与工做区,与上一次commit保持一致
$ git reset --hard
六、分支操做
# 列出全部本地分支
$ git branch
# 列出全部远程分支
$ git branch -r
# 列出全部本地分支和远程分支
$ git branch -a
# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]
# 新建一个分支,并切换到该分支
$ git checkout -b [branch]
# 切换到指定分支,并更新工做区
$ git checkout [branch-name]
# 合并指定分支到当前分支
$ git merge [branch]
# 选择一个commit,合并进当前分支
$ git cherry-pick [commit]
# 删除分支
$ git branch -d [branch-name]
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
七、克隆仓库
# repo:Git 仓库 directory:本地目录
$ git clone <repo>
$ git clone <repo> <directory>
八、与远程仓库同步
# 增长一个新的远程仓库,并命名
$ git remote add [origin] [url]
# 取回远程仓库的变化,并与本地分支合并
$ git pull [remote] [branch]
# 上传本地指定分支到远程仓库
$ git push [remote] [branch]