Git.如何在master中重置?(SVN更新模拟)

  • 本文关键字:SVN 更新 模拟 master Git git
  • 更新时间 :
  • 英文 :


我对Git很熟悉,之前我用过三年SVN。

我克隆了一个repo并在没有创建分支的情况下进行了本地提交。现在我想从master中"获取"变更,将其与本地提交合并(如果有冲突),并将结果推送到origin。

在SVN中应该是update -> merge -> commit。对于我的情况,Git中的类比是什么?

直接使用git pull。它将从远程下载最后的提交,并将您的工作与它合并。

git pull命令是两个不同命令的宏:

  1. git fetch,下载最新的提交并添加到本地远程跟踪分支
  2. git merge将您当前的工作(您最近的本地提交)与从远程
  3. 下载的最新提交合并。

我建议你花几分钟阅读一些Git的基本概念。

Git中对SVN工作流的类比是fetch + rebase(不是fetch + merge)!

此外,Git不能像SVN那样简单地将远程更改集成到工作树中。Git合并/重组只能在一个干净的工作树上操作!

相当于SVN update的整个Git将是:

  • stash local changes to clean up working tree;
  • fetch remote changes;
  • rebase;
  • stash pop将本地更改重新整合回工作树;
  • 解决冲突;
  • (如果存在冲突)使用stash drop手动删除隐藏状态。

最新更新