GIT - (储藏,引用日志)

储藏:

储藏可以捕获你的工作进度,允许你保存工作进度并且当你方便时再回到该进度。

应用情况1:

git stash save "WIP: break down this work for fixing bugs."

执行了这条命令后,使版本库的HEAD 恢复到上一次提交。

通过git show-branch stash 可以显示储藏的内容。

再次执行git stash pop 可以回到之前的编辑状态了,只能在一个干净的工作目录中使用git stash pop命令。// 等同于git stash apply + git stash drop,apply:不从栈中删除储藏状态,drop:将状态从栈中删除。

创建多条储藏

显示所有的储藏条目:git stash list

显示指定储藏条目相对于父提交的变更记录:git stash show (默认为最新的条目) 或者 git stash show stash@{1}。git stash show -p 或者 git stash show -p stash@{1}, -p 选项可以显示更加详细的信息。

应用情况2:

通过git pull从远程版本库更新自己本地的版本库,如果在本地上你有修改但未提交的文件,执行git pull命令就会产生冲突,更新失败。这时候执行git stash save来储藏自己的修改,然后git pull,再执行git stash pop恢复。

如果在本地上你有正在开发的untracked文件,同时pull下来的内容可能恰好包含相同名字的文件,这是执行git pull命令就会产生错误,更新失败。这时候需要使用git stash --include-untracked save来储藏包含未被追踪的文件,之后git pull,再执行git stash pop恢复。解决冲突是必要的。

引用日志:

reflog:记录非裸版本库中分支头的改变。每次对引用的更新,包括对HEAD的,引用日志都会更新以记录这些引用发生了哪些变化。

更新引用日志的基本操作:

复制,推送,执行新提交,修改或创建分支,变基操作,重置操作。

显示引用日志:

git reflog show //默认引用,HEAD

git reflog [branch_name] //分支名也是一种引用,将显示这个分支名相关的引用。

例如:41b1a65 HEAD@{0}: clone: from /path/git/git_test

41b1a65 是发生变更时的提交ID, HEAD@{0}是引用变更的别名,clone: from /path/git/git_test 是对发生变更的描述。

显示一个变更的具体内容:

git show HEAD@{0}

如果对之前的变更反悔,可以通过:

git reset HEAD@{1},当然根据需要也可以加上--hard


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值