Git commit合并操作 以及Reset参数理解

git cmd中文乱码解决:

git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8
export LESSCHARSET=utf-8

多余多次commit 的合并

使用git log查看需要合并的commit
git rebase -i commitId
或者git rebase -i HEAD~1 修改倒数第1次的commit

其中,-i 的参数是不需要合并的 commit 的 hash 值,这里指的是第一条 commit, 接着进入到 vi 的编辑模式

pick 要会执行这个 commit
squash 这个 commit 会被合并到前一个commit
reword 使用commit,但可编辑这条commit信息
edit 使用commit, 但停止正在执行的amend
fixup 类似squash, 但会丢弃这条commit信息
drop 移除commit

Git Reset 三种模式

reset --mixed 参数(默认)。
它的行为是:保留工作目录,并且清空暂存区。
工作目录的修改、暂存区的内容以及由 reset 所导致的新的文件差异,都会被放进工作目录。
简而言之,就是「把所有差异都混合(mixed)放在工作目录中」

--hard
重置位置的同时,直接将 working Tree工作目录、 index 暂存区及 repository 都重置成目标Reset节点的內容,所以效果看起来等同于清空暂存区和工作区

--soft
重置位置的同时,保留working Tree工作目录和index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致
因此原节点和reset节点之间的【差异变更集】会放入index暂存区中(Staged files)。
所以效果看起来就是工作目录的内容不变,暂存区原有的内容也不变,只是原节点和Reset节点之间的所有差异都会放到暂存区中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值