GIT学习笔记(6)
来源:互联网 发布:快乐十分选号软件 编辑:程序博客网 时间:2024/06/14 08:14
深入理解git checkout
git checkout 具体用法如下
git checkout [-q] [<commit>] [--] <paths> #1git checkout [<branch>] #2git checkout [-m] [[-b]--orphan] <new_branch>] [<start_point>] #3
用法1的commit是可选项,默认值为暂存区(git reset的默认commit是HEAD),所以git reset常用于重置暂存区,git checkout主要用于覆盖工作区。
第一种用法
不会改变头指针。 如果有commit参数会改变工作区和暂存区。无commit参数只会用暂存区覆盖工作区。
第二种用法
第二种用法会改变头指针。给定branch参数是因为HEAD要切换到另一个分支才能进行跟踪,不然会进入“分离头指针状态”。
省略branch参数则是对工作区进行状态检查。
第三种用法
第三种用法主要是创建和切换分支。新分支从start_point指定的commit开始创建。
示例:
git checkout branch2
1.将HEAD指针指向branch2
2.通过HEAD指针更新暂存区
3.通过暂存区更新工作区。
git checkout
汇总并显示工作区,暂存区和HEAD的差异。相当于git checkout HEAD
git checkout --filename
用暂存区文件替换工作区文件。
git checkout BRANCH --filename
不改变HEAD指向,从branch提交中找出文件并替换暂存区和工作区文件。
git checkout .
将工作区所有文件用暂存区替换。
恢复进度
通过git status -sb
查看当前状态(-b参数 要求git version>= 1.7.2)
git stash
通过git stash来保存进度,通过git stash list来查看保存的进度。git stash pop从最近的进度中回复。
完整的git stash命令如下
git stash [save [--patch] [-k|--[no-]keep-index] [-q|--quiet][<message>]]
stash工作时,如需要说明,则需要git stash save 'message'
使用参数 --patch
来查看工作区和HEAD之间的差异。
使用-k或--keep-index
参数,在保存进度时不会将暂存区重置。 git stash apply [--index] [<stash>]
与git pop相同,不同点是git apply不会在恢复完毕后删除被恢复的进度。 git stash drop [<stash>]
会删掉这个stash。默认删除最新的stash。
git stash clear
删除保存的所有进度 git stash branch <branchname> <stash>
基于进度创建分支
探秘git stash
git core文件存在于`git --exec-path`
中。也就是/usr/lib/git-core。 ls /usr/lib/git-core
会显示git所有子程序。在较早期的git版本,所有git子程序都保存在可运行目录中,用git-<cmd>
调用。而较新的git使用了命令行git <cmd>
。
git stash是用引用变更和git reflog来实现的。
git reflog show refs/stash
会显示stash记录
stash@{n}
,是refs/stash@{n}
的简称。git基本操作
rm和git rm
使用rm删除工作区文件,不会体现在暂存区中,而用git rm删除工作区文件,会显示在暂存区中
git add -u快速rm
使用rm等命令后,再执行git add -u会把被追踪的文件的增删改都增加到暂存区中。
- GIT学习笔记(6)
- git学习笔记-6 git reset(重置)
- Git学习笔记(6)----分支
- Git学习笔记(二) Git初始化
- Git学习笔记(四) Git对象
- Git学习笔记(五) Git重置
- Git学习笔记(六) Git检出
- Git学习笔记(十一) Git克隆
- git学习笔记(1)-git基础
- Git学习笔记(二) Git初始化
- Git学习笔记(四) Git对象
- Git学习笔记(五) Git重置
- Git学习笔记(六) Git检出
- Git学习笔记(十一) Git克隆
- Git学习笔记(一) 本地Git
- Git学习笔记(二) 远程Git
- 【git】git学习笔记
- git 学习笔记(1)
- Copy文件错误的提示
- Python实现图灵机器人交互
- html title 图标
- oracle笔记06
- android studio3.0(二)Cannot set the value of read-only property 'outputFile'
- GIT学习笔记(6)
- 集合
- 转载 springBoot与redis
- 高通modem侧新增AT命令
- java基础知识(三 数据类型)
- java
- WinDbg 命令
- JNI 实战全面解析,jni实战全面解析
- Spring Boot整合Redis