一些常见的git 命令
###git checkout
git checkout的特点是随着它使用的方法的不同,其作用是完全不同的,主要有三个方面
- 切换分支 (git checkout branch)
- 撤销工作区修改 (git checkout -- file)
- 检查工作区文件状态 (git checkout),有点类似于git status
(注意: 有 “--” 表示撤销文件, 没有“--”表示切换分支,如果checkout后面什么都不加,则表示检查文件状态,有点类似于git status)
1.切换分支,通过git checkout branch实现
2撤销工作区修改.,通过git checkout -- file实现
git checkout --file的根据两种不同情况分别有不同的撤销修改的效果
第一种是工作区文件修改但尚未add到暂存区: 此时撤销修改时,file就会回到上一次commit时的状态
第二种是工作区文件add到暂存区后,又对工作区文件进行修改,此时撤销修改时,file就会被暂存区的内容覆盖
3...
###git reset
git reset的作用有两种:
1. 回退版本
2.把暂存区的修改回退到工作区
reset可以用于回退版本,reset有hard/soft/mixed三种模式
--soft # 回退 HEAD
--mixed # 还原 HEAD、暂存区 # 默认参数
--hard # 还原 HEAD、暂存区、工作区
git checkout, git reset和git stash的区别:
- git checkout处理的情况是:在工作区的代码修改有bug,试图放弃工作区的修改,用暂存区的内容或者已commit的内容覆盖工作区。
- git reset 处理的情况是:最新提的一次commit有bug,想要消除本次commit记录,以便重新提commit
- git stash处理的情况是: 在一个分支A 处理中,尚未完成(未commit),但此时有有需求要求去新开另外一个分支B,为此先把A的现场存储并隐藏起来,然后再去处理分支B,等分支B处理完成后,再回头处理分支A
git log --graph 看分支图表
git status
git status的状态有三种:
- 未暂存
- 暂存,但未提交
- 已经提交
git diff
###git merge是根据commit的结果去合并的!!
git log --pretty=oneline
将log显示为单行
常见流程
##将本地仓库上传至github
2. 配置本地的用户名密码
$ git config --global user.name “your_username” #设置用户名
$ git config --global user.email “your_registered_github_Email” #设置邮箱地址
3.在github上创建一个新的repository
4.根据github上的提示输入命令
git init
git add README.md
git commit -m "first commit"
git remote add origin "github上repository的地址"
git push -u origin master
##分支开发
1.在master上创建dev分支
git branch dev
2.切换到dev分支
git checkout dev
3.进行开发
4.切回master分支,通过git merge进行合并
5.通过 git branch -d dev 删除dev分支
一些git命令之间的区别
一. git log 和 git reflog
git log 仅仅输出commit的历史记录,而git reflog会输出commit,checkout和reset的记录,如下图
git log
git reflog
二.