本文来源为
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/ ,仅是学习之后,进行简单总结,需要的朋友可进行系列学习。
- 显示当前目录
pwd - 初始化一个git仓库
git init - 添加文件到git仓库
- ①
git add <file>添加文件 - ②
git commit -m "提交说明"-m为可选,后跟本次提交的说明,但建议必填,这样之后查看时,可以清楚的知晓本次都做了什么。 - 查看仓库当前的状态
git status - 查看different
git diff - 记录每一个命令(命令历史)
git reflog - 显示从最近到最远的提交日志(提交历史) git log
- 使用
git log --pretty=oneline可简化log输出信息
- 使用
- 回退
- ① 返回上一个版本
git reset --hard HEAD^ - ② 返回版本号为3628164的版本
git reset --hard 3628164,版本号可以用git log --pretty=oneline来查看。
- ① 返回上一个版本
Git中 ,
HEAD表示当前版本,上一个版本是HEAD^,上上一个版本是HEAD^^,若版本过早,可简写HEAD~100。
- 将某个文件(file)在工作区中的修改全撤销
git checkout -- file - ① 若file 自修改后还没被放到暂存区,现撤销就和版本库一样。
- ② 若file已经添加到暂存区,又做了修改,现撤销修改就回到添加暂存区后的状态。
- 将暂存区的修改撤销重新放回到工作区
git reset HEAD file - 关联一个远程库,使用命令
git remote add origin git仓库地址,关联后,使用命令git push -u origin master第一次推动master分支的所有内容。 - 由于远程库是空的,第一次推送
master分支时,加上-u参数,git不但会把master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或拉取时可简化命令。
此后,每次修改提交,就可以使用命令git push origin master推送最新修改。 - 将某个远程库下载至本地。
git clone 远程仓库 - git支持多种协议,包括
https和ssh,但通过ssh支持的远程git 协议速度最快。 - 创建dev分之并切换
git checkout -b dev相当于以下两个操作 - ①
git branch dev创建分支 - ②
git checkout dev切换分支 - 查看当前分支
git branch(列出所有分支,当前分支前有一个*) - 合并指定分支到当前分支
git merge 指定分支名称 - 删除指定分支(dev)
git branch -d dev - 查看分支合并图
git logg --graph -
git logg --graph --pretty=oneline --abbrev-commit简化输出 - 合并分支时禁用fast forword 模式
git merge --no-ff -m "提交说明" dev
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
- 假设一个工作场景:你现在在一个分支上工作,但现在有一个紧急任务,需要在主分支上修改Bug,但你并不想提交目前的工作至进度,此时,就需要临时的“储藏”当前的工作现场,切换至主分支(或其它任何分支)进行紧急任务,任务完成后,恢复当前工作现场。
- “储藏”当前工作现场
git stash - 查看 “储藏”
git stash list - 恢复并删除stash内容
git stash pop - 恢复但不删除stash内容
git stash apply - 删除stash
git stash drop