1 关于 git merge
和 git rebase
的差异
git merge
(合并)
- 功能:将一个分支的更改合并到当前分支,创建一个新的合并提交。
- 优点:操作简单,保留分支历史,便于追溯。
- 缺点:历史记录可能变得复杂,合并提交较多。
- 适用场景:多人协作,需要保留分支历史。
git rebase
(变基)
- 功能:将一个分支的更改重新定位到另一个分支上,使提交历史更加清晰、线性。
- 优点:历史记录清晰,便于代码审查。
- 缺点:操作复杂,容易出错,可能会改写历史。
- 适用场景:个人开发,需要整理提交历史。
使用建议
- 如果需要保留分支历史,适合多人协作,推荐使用
git merge
。 - 如果希望提交历史更清晰,适合个人开发,推荐使用
git rebase
。 - 在推送代码到远程仓库后,尽量避免使用
git rebase
,以免导致历史不一致。
2 git stash的使用
假设在 feature
分支上进行开发,但突然需要切换到 main
分支修复一个紧急问题:
csharp
# 保存当前工作目录和暂存区的更改
git stash
# 切换到 main 分支
git checkout main
# 修复问题并提交
git add .
git commit -m "Fix urgent issue"
# 切换回 feature 分支
git checkout feature
# 应用之前保存的更改
git stash pop
注意事项
git stash
只保存工作目录和暂存区的更改,不会保存未跟踪的文件(如新添加的文件)。- 如果在应用暂存区的更改时发生冲突,Git 会提示你手动解决冲突。
- 使用
git stash
时,建议定期清理暂存区,避免记录过多。
git stash
是一个非常实用的工具,可以帮助你更好地管理开发过程中的临时更改。