本文来源为
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