git 提交代码注意事项

场景:

在协同开发的过程中,既要保证自己的代码完整不被覆盖,又需要去拉取远程在你之前提交还未拉取的代码,但这里有一个问题,为了使提交记录更加整洁美观,不会出现 Merge Commit 的情况,就需要合理使用 git 命令。

什么是 Merge Commit

它会让 Git 历史图看起来像“蜘蛛网”,尤其是在多人开发的时候。

情况1:

假如有两个分支:

当你在 master 分支上执行:

git merge feature

Git 会生成一个新的提交 M:

M 就是 Merge Commit,它有两个父节点(一个是 C,一个是 E),表示这是一个合并操作。

情况2:

你和同事都在 master 分支开发:

此时你执行了 git pull,Git 会生成一个新的合并提交 M:

(因为 git pull 默认是 fetch + merge)

M 就是 Merge Commit,它把你本地的提交(D-E)和远程的提交(C)合并成一个新的共同节点。


Merge Commit 的作用:
✅ 记录了 两个分支何时被合并;
✅ 保留了分支开发的历史;
❌ 但如果频繁合并,会导致提交历史变得混乱。

所以有时候大家更喜欢用:

git pull --rebase

这样拉取时会把你的提交 “平铺”到最新提交之后,不会生成 Merge Commit,提交历史更线性清晰:

如果我们在没准备好 commit 提交自己新鲜出炉的代码之前,去执行 git pull,通常会收到提示需要先 commit 再 pull, 可以这样做:

git stash            # 保存当前修改到 stash 区
git pull --rebase            # 拉取远程最新代码
git stash pop        # 恢复刚刚保存的修改

注意:如果你本地和远程代码改了同一位置,stash pop 时可能会有冲突。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青松果核

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值