Overview
记录一下自己常用的一些Git功能
rebase
- 合并master上的commit
git rebase -i HEAD~3
,然后从展示的交互页面中选定要取,要留。一般是第一个改为p
,其余都改为s
(commit log是越新越底)git add .
,如果交互没有报错git rebase --continue
git push -f
,一般情况会跟origin-master有冲突,所以要force push
- 提交dev分支前使用rebase,可以把master上的最新commit
前插
到本次dev的最旧commit
stash
暂存一些内容。比如现在在开发feature1,突然有一个叫feature2的需求过来,此时我们希望依然在原master的基础上开发feature2(因为feature1还没开发完merge到master)。
此时我们不希望删掉所有feature1已经开发的代码,即git checkout . && git clean -fd && git status
而是希望可以保存已经modify的所有内容,此时就可以用stash。
stash@{id}, id最小是0,0表示为栈顶元素,即最近一次stash save
# CRUD
# 存储已有modify
git stash save "your work in progress for feature1"
# 查看
## 查看现有stash
git stash list
## 查看具体详情
git stash show stash@{0}
# 应用
## 应用(但不删除)
git stash apply stash@{0}
## 取出栈顶(并删除)
git stash pop
# 删除
## 单个删除
git stash drop stash@{0}
## 全部删除
git stash clear
# 新开一个分支来应用某个stash
git stash branch your_feature1_branch_name stash@{0}