Git流程
配置git
-
全局配置用户名:git config --global user.name "name"
-
全局配置邮箱:git config --global user.email 邮箱
-
查看配置:git config --list
- workspace: 工作区
- index/Stage: 暂存区
- Repository: 本地仓库
- Remote: 远程仓库
暂存区管理
-
添加文件到暂存区:git add <file>
-
添加所有文件到暂存区:git add .
-
从暂存区撤销文件(确切的说是让暂存区与本地库保持一致): git reset <file>
-
从暂存区撤销所有文件(确切的说是让暂存区与本地库保持一致): git reset
提交
-
提交:git commit -m 'message'
-
加入暂存区并提交:git commit -am 'message'
-
覆盖上次提交:git commit --amend
撤销
a、如果还没 git add file ,使用该指令进行撤销: git checkout -- fileName
b、如果已经git add file , 但是没有 git commit -m "" 分两步操作:
b-1、git reset HEAD readme.txt
b-2、git status
b-3、git checkout -- file
c、如果已经git add file 并且已经 git commit ,那么回退版本办法是:
c-1、通过 git log 或者 git log --pretty=oneline 、git reflog
c-2、找到对应的commit id进行回退:git reset --hard 1094a
-
从本地库中回退到上次提交,暂存区与本地文件保留: git reset --soft HEAD~1
-
从本地库中回退到对应提交,暂存区与本地文件保留: git reset --soft <commitId>
-
从暂存区撤销文件(确切的说是让暂存区与本地库保持一致): git reset <file>
-
从暂存区撤销所有文件(确切的说是让暂存区与本地库保持一致): git reset .
-
从本地库中回退到上次提交,暂存区,本地文件同步回退: git reset --hard HEAD~1
-
从本地库中回退到对应提交,暂存区,本地文件同步回退: git reset --hard <commitId>
-
从暂存区还原本地指定文件:git checkout -- <path>
-
从暂存区还原所有文件:git checkout -- .
-
从指定版本更新文件和暂存区:git checkout <commitID> -- <path>
-
从指定版本本地库更新所有文件和暂存区:git checkout <commitID> -- <path>
删除文件
-
删除本地和暂存区文件:git rm <file>
-
删除暂存区中的文件(保留本地文件和本地库中的文件):git rm --cached <path>
-
查看未跟踪文件:git clean -n
-
删除未跟踪文件:git clean -d
-
强制删除未跟踪文件:git clean -df
-
移动本地和暂存区文件: git mv <name> <new_name>
查看当前状态
-
查看文件状态:git status
-
查看本地文件和暂存区的差别:git diff <path>
-
查看暂存区和本地库的区别:git diff --cached <path>
-
查看由commitId1到commitId2的变化: git diff <commitId1> <commitId2> <path>
-
查看单文件提交日志: git log <path>
-
查看所有提交日志: git log
-
查看提交日志和diff: git log -p <path>
-
查看每一行的提交信息: git blame
远程仓库
-
从远程仓库克隆项目:git clone <url>
-
初始化一个本地项目:git init
-
设置远程地址的别名: git remote add <shortname> <url>
-
查看远程仓库列表:git remote -v
-
查看远程仓库详情:git remote show <remote>
-
远程仓库更名:git remote rename <oldname> <newname>
-
删除远程仓库:git remote rm <remote>
-
从远程仓库拉取:git pull <remote> <branch>
-
向远程仓库推送:git push <remote> <branch>
-
更新本地的远程仓库: git fetch <remote>
分支
-
查看远程分支: git branch -r
-
查看本地分支: git branch
-
根据当前分支创建分支:git branch <branchname>
-
切换分支:git checkout <branchname>
-
根据当前分支创建分支并切换: git checkout -b <branchname>
-
根据远程分支创建分支: git checkout -b <branchname> <remote>/<branchname>
-
关联远程分支并推送:git push -u <remote> <branch>
-
删除本地分支:git branch -d <branchname>
-
删除远程追踪分支: git branch --d --remotes <remote>/<branchname>
-
删除远程仓库分支: git push <remote> :<branch>
-
删除远程分支和远程追踪分支: git push origin -d <branchname>
-
清理远程追踪分支: git remote prune origin
-
合并分支: git merge <branchname>
-
合并远程分支: git pull <remote> <branchname>
-
合并指定提交: git cherry-pick <commitId>
-
冲突后撤销合并: git merge --abort
stash缓存
-
缓存当前状态: git stash
-
缓存当前状态并设定标记: git stash save 'message'
-
应用提一条缓存并删除: git stash pop
-
应用指定缓存不删除: git stash apply <stashname>
-
查看缓存列表: git stash list
6.清空stash区: git stash clear
- 清空指定索引的stash: git stash drop stash@{<index>}
帮助文档
- git help <命令>