很多初学GIT的同学对GIT的本地仓库和远程仓库无法做到很好的区分,我就画了一张图,来阐明他们之间的关系:
Git stash 的使用:
我们在多分支操作时,暂存工作区中未提交的代码的功能非常有用。一般我们要求commit的代码都是功能完善的,可测试的,但是很多时候,我们的代码片段还未写完,需要临时切出一个分支来解决线上问题,此时就应该使用git stash功能;
git stash 是全局储藏区,不同的分支下的stash操作都会到同一个储藏区。
默认名称储藏工作区:
1 | git stash |
按照指定储藏名称储藏工作区:
1 | git stash save "commit info" |
查看历史储藏区列表:
1 | git stash list |
恢复储藏区的某操作到当前分支:
- 方式一:
1 | git stash pop |
此方式直接从储藏区堆栈中的栈顶弹出最近的一次stash操作的内容,并删除堆栈中的当前stash操作记录;
- 方式二:
1 | git stash apply stash@{0} |
通过指定使用储藏区记录的名称来恢复stash的内容,stash@{n} 具体值可以从git stash list
中查看,当然,直接使用git stash apply ,默认指向栈顶记录(stash@{0}永远指向栈顶)。 apply
只是应用储藏区的一个记录到当前工作区,并不会删除储藏区的记录。
删除储藏区某一记录:
1 | git stash drop stash@{0} |
git stash drop
默认的也是从栈顶开始删除,通过drop 后加名称可以指定删除的储藏记录。
从stash中创建分支:
1 | git stash branch branch-name |