stash 存储临时代码
stash 命令能够将还未 commit 的代码存起来,让你的工作目录变得干净。
git stash
git stash save "备注的内容"
git stash list
git stash clear
git stash apply
git stash pop
git stash drop
reset --soft 软回溯,回退 commit 的同时保留修改内容
回退commit,并将commit 到最新 的修改内容放到暂存区
git reset --soft 1a900ac29eba73ce817bf959f82ffcb0bfa38f75
cherry-pick 复制 commit
将已经提交的 commit,复制出新的 commit 应用到分支里
条件:feature分支,master分支
需求:feature的某个已完成功能,需要上线(即合并到master)
解决:查看feature log,切换到master,使用 cherry-pick commit1 commit2 复制到 master 即可
git cherry-pick commit1 commit2
git cherry-pick commit1^..commit2
代码冲突
当使用 cherry-pick 转移多个 commit 时,某一个 commit 与 master 发生冲突
git cherry-pick --continue
git cherry-pick --abort
git cherry-pick --quit
revert 撤销 commit 的修改内容
普通提交
将现有的 commit 还原,恢复提交的内容,生成一条还原记录,不影响其他 commit,然后修改自己的代码就好了
合并提交
commit 里面有一种类型是 合并提交 ,想要 revert 合并提交时,是有一些不一样的,因为 合并提交 是两个分支的交汇点,使用 revert 时 git 不知道需要撤销哪一条分支,需要加 -m 参数,1保留主分支,另一条被撤销
git revert -m 1 <commitHash>
合并提交的再次合并
revert 合并提交后,修复完bug后,需要在 master 上重新 revert 合并提交的commitHash,这样,修改的内容才会到 master 上
reflog 记录了 commit 的历史操作
当错误提交后,reset 过头了,使用 reflog 查看历史记录,记下错误提交的 commitHash, reset 回去
场景:需要 reset 到 commit2 来撤回自己错误的提交,手残 reset 到 commit3
- commit1 自己错误的提交
- commit2 同事的提交
- commit3 正常提交
git 短命令设置
方式1:git config --global alias.ps push
方式2:
vim ~/.gitconfig
[alias]
co = checkout
ps = push
pl = pull
mer = merge --no-ff
cp = cherry-pick
使用:git cp commitHash 等同于 git cherry-pick commitHash
|