Git 常用命令

git stash的相关使用,当我们遇到一个紧急bug需要处理,处理完了之后又需要紧急的提交上去,可是目前的工作内容还没有完成,不能在此时提交,想暂存起来。此时,git提供了git stash命令来解决这样的需求。

对git stash的详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 暂存当前状态
git stash
=> 后面可带参数 [save message] [-k|--no-keep-index] [--patch]
// 使用save message 可以对进度添加备注,-k和--no-keep-index指定保存进度后,是否重置暂存区,--patch会显示工作区和HEAD的差异,通过编辑差异文件,排除不需要保存的内容,和git add -p 命令类似。
// 查看当前工作区和版本库区别
git diff HEAD
=> 此时若什么都没有输出,说明工作区被重置为HEAD指向内容了
// 显示已暂存列表
git stash list
//恢复暂存区的工作区的进度
git stash pop
=>命令后面可带参数 --index stash@{0}
//不删除已恢复的进度,其他同git stash pop
git stash apply [--index] [<stash>]
//删除某一个进度,默认删除最新进度
git stash drop [<stash>]
// 删除所有进度
git stash clear
// 基于进度创建分支
git stash branch <branchname> <stash>

以上就是使用git stash的常用命令了,可是有时候,我们可能会将缓存区的进度给删除了,然而会造成本地写好的工作进度全没了,这确实是一件很头疼的事情

So,下面再说说将删除后的进度恢复的常用git操作

1
2
3
4
5
6
// 首先使用
git fsck --lost-found
//然后使用git show <stash-id>查看是不是自己想要的进度,
git show <stash-id>
//如果是,那就可以执行下面的git merge进行恢复了
git merge <stash-id>

这样就能找回刚才一不小心给删除掉的工作进度了。

git常用命令之git checkout修改指定分支的指定文件

1
2
3
4
git checkout origin/branch <filepath>
// 例子
git checkout master // 切换回主分支
git checkout origin/dev src/js/../*.js // 将dev分支上的src/js/../*.js目录下的某个js文件覆盖到master