git 常用命令详解(merge/rebase/cherry-pick)

简介: git常用命令详解。git merge将已提交的commit(自历史记录与当前分支分开以来的提交)合并到当前分支中。rebase变基的原理git-cherry-pick能应用(合并)已经存在的commit,即选择合并某个特定commit

merge

git merge 将已提交的commit(自历史记录与当前分支分开以来的提交)合并到当前分支中。

原始分支

      A---B---C topic
     /
    D---E---F---G master

checkoutmaster分支,使用命令git merge topic

      A---B---C topic
     /         \
    D---E---F---G---H master

git merge --abort将中止合并过程,并尝试重建合并前的状态。但是,如果在合并开始时有未提交的更改(尤其是在合并开始后进一步修改了这些更改),则git merge --abort在某些情况下将无法重建原始更改。因此警告:不建议运行git merge合并重要的未提交更改

rebase

git rebase的使用场景

  1. 合并多次commit为单次commit
  2. 分支合并

变基的原理

  1. 找到这两个分支(即当前分支 topic、变基操作的目标基底分支 master)的最近共同祖先 D
  2. 对比当前分支相对于该祖先的历次提交,提取相应的修改并存为临时文件(A+B+C=C')
  3. 然后将当前分支指向目标基底 C', 最后以此将之前另存为临时文件的修改依序应用。

原始分支

      A---B---C topic
     /
    D---E---F---G master

topic分支使用git rebase master

      C' topic
     /
    D---E---F---G maste

checkoutmaster分支,使用命令git merge topic

    D---E---F---G---C' master

注意:rebase 会改写历史记录,若该分支的提交已被其他使用者修改时,不建议使用

可选操作

  • p, pick 保留该commit
  • r, reword 保留该commit,但修改注释
  • e, edit 保留该commit,但修改提交
  • s, squash 保留该commit,将其前一个commit合并
  • f, fixup 操作与squash相同,但丢弃注释
  • x, exec 执行shell命令
  • d, drop 丢弃该commit

cherry-pick

git-cherry-pick 能应用(合并)已经存在的commit,即选择合并某个特定commit

原始分支

      A---B---C topic
     /
    D---E---F---G master

假设commit C的版本号为7289a5,在master分支使用git cherry-pick 7289a5

      A---B---C topic
     /
    D---E---F---G---C master

参考资料:

  1. git merge
  2. git book
  3. Git Community Book 中文版
  4. 彻底搞懂 Git-Rebase
  5. Git合并特定commits 到另一个分支
相关文章
|
4天前
|
开发工具 git
git merge和git rebase异同
git merge和git rebase异同
27 0
|
1月前
|
测试技术 持续交付 开发工具
1.Git使用技巧-常用命令3
1.Git使用技巧-常用命令3
25 0
|
1月前
|
缓存 开发工具 git
1.Git使用技巧-常用命令2
1.Git使用技巧-常用命令2
27 0
|
1月前
|
开发工具 git
git日志输出相关命令
git日志输出相关命令
|
2月前
|
存储 算法 开发工具
git是什么?git的五个命令,git和svn的区别
git是什么?git的五个命令,git和svn的区别
30 0
|
7天前
|
缓存 Java 开发工具
[Git]入门及其常用命令
[Git]入门及其常用命令
17 0
[Git]入门及其常用命令
|
13天前
|
存储 Shell 开发工具
Git常用命令
Git是一个版本控制系统,用于跟踪和管理软件开发项目中的代码改动。它可以记录代码的历史修改,支持多人协作开发,提供了分支管理等功能。通过Git,开发者可以方便地回退到代码的早期版本,合并代码的改动,以及与其他开发者共享代码。Git已经成为大多数软件开发团队的标准工具之一。
32 8
Git常用命令
|
18天前
|
存储 Shell 开发工具
Git常用命令
Git是一个版本控制系统,用于跟踪和管理软件开发项目中的代码改动。它可以记录代码的历史修改,支持多人协作开发,提供了分支管理等功能。通过Git,开发者可以方便地回退到代码的早期版本,合并代码的改动,以及与其他开发者共享代码。Git已经成为大多数软件开发团队的标准工具之一。
28 3
 Git常用命令
|
20天前
|
Java 程序员 开发工具
|
27天前
|
开发工具 git
git常用命令大全
git常用命令大全
29 0

相关产品

  • 云迁移中心
  • 相关实验场景

    更多