代码之家  ›  专栏  ›  技术社区  ›  DDave

git拉源开发vs git合并

git
  •  0
  • DDave  · 技术社区  · 7 年前

    我已经签出一个功能开始工作;但我想用上一次开发更新它。但是我犯了一个错误,我没有使用“git-rebase-develope”,而是使用了“git-pull-origin-develope”,我看到发生了一次合并。可以吗?我可以继续说,它类似于“git rebase”或“git merge develop”?

    $git checkout feature/migration
    Branch 'feature/migration' set up to track remote branch 'feature/migration' from 'origin'.
    Switched to a new branch 'feature/migration'
    
    
    $git pull origin develop
    From https://github.com/xxx
     * branch              develop    -> FETCH_HEAD
    Auto-merging web/package.json
    Auto-merging package.json
    Merge made by the 'recursive' strategy.
     api/src/entity/User.ts            |  8 ++++++ ... more
    

    我做的

    git reset --hard  619c69ae
    

    重置前记录

    $git lg1
    *   18ee4066 - (2 minutes ago) Merge branch 'develop' of https://github.com/proj into feature/migration - Dave (HEAD -> feature/migration)
    |\  
    | *   619c69ae - (16 hours ago) Merge branch 'release/3.1.64' into develop - Dave (origin/develop, origin/HEAD, develop)
    | |\  
    * | | e8491f6e - (3 days ago) fix delete index - Dave (origin/feature/migration)
    

    *   619c69ae - (16 hours ago) Merge branch 'release/3.1.64' into develop - Dave (HEAD -> develop, origin/develop, origin/HEAD, feature/migration)
    |\  
    | | *   eaa8f62a - (16 hours ago) Merge branch 'release/3.1.64' - Dave (tag: 3.1.64, origin/master, master)
    | | |\  
    | | |/  
    | |/|   
    | * | 2dda35ad - (16 hours ago) release 3.1.64 - Dave
    |/ /
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   Nuwan Attanayake    7 年前

    但不管怎样,主要的区别在于 rebase 和 merge 是

    • 您可以从中获得更清晰的项目历史记录 重基 通过消除不必要的合并提交,并以线性顺序重新编写历史记录。

    如果你还想回去试试 那么,

    撤消合并

    git reset --hard ORIG_HEAD
    

    然后重新设置基址

    git rebase develop
    
        2
  •  1
  •   Geno Chen    7 年前

    没关系。我们可以粗略地说 git pull = git fetch git merge .

    还有,有时候 git rebase can cause disasters

    然而, 吉特重基 vs 合并分支 different point of view for histories