git简洁提交

修改上个提交 git commit --amend

该命令的帮助文档描述如下:

--amend 修改之前的提交

也就是说,它可以帮助我们修改上次提交的内容
可以修改我们提交的消息和提交的文件,最后替换最后的提交ID
提交时我们可能会遗漏文件。当我们再次提交时,我们可能会有多个无用的提交 ID。如果大家都这样,git log会慢慢变得混乱,无法追踪完整的功能
但是,一个已经push的commit进行amend会很麻烦。一旦push,同时而且已经被小伙伴拉到他本地,你在改写历史,就会造成远程仓库的树结构和他本地的树结构不一致,合并的时候会自动生成一个merge commit。而且由于本地和远程仓库不一样,也无法直接进行push操作,除非进行push -f,如果你执行了push -f,小伙伴那里估计就要骂人了。

压缩合并 git merge --squash <分支名>

squash直译为压缩多个commit。

squash命令可以将整个feature分支压缩为master分支上的一个commit。
下面这条命令也可以达到类似的效果:

git merge --no-ff --no-commit

--squash当一个合并发生时,从当前分支和对方分支的共同祖先节点之后的对方分支节点,一直到对方分支的顶部节点将会压缩在一起,使用者可以经过审视后进行提交,产生一个新的节点。

--no-commit参数使得合并后,为了防止合并失败并不自动提交,能够给使用者一个机会在提交前审视和修改合并结果。
--no-ff即使可以使用fast-forward模式,也要创建一个新的合并节点。

在master分支上执行后,从分叉的节点开始后的所有提交(develop分支上的)都会变成added的状态,继续执行一次提交;commit的时候记录里会自动生成squashed from信息,会导致commit信息冗杂但也是一种记录,重新commit之后就看不到和原先的提交间的联系了。develop分支的提交记录仍然会保存。

修改&合并提交 git rebase -i

《git rebase详解》

修改提交 git commit --fixup

发现历史提交 54321 中包含错误,直接在当前工作区中针对这个错误进行修改,然后执行下面命令。

git commit --fixup 54321
// fixup! 原提交说明
git rebase -i --autosquash 54321    // 合并
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇