我对Git很熟悉,之前我用过三年SVN。
我克隆了一个repo并在没有创建分支的情况下进行了本地提交。现在我想从master中"获取"变更,将其与本地提交合并(如果有冲突),并将结果推送到origin。
在SVN中应该是update -> merge -> commit。对于我的情况,Git中的类比是什么?
直接使用git pull
。它将从远程下载最后的提交,并将您的工作与它合并。
git pull
命令是两个不同命令的宏:
-
git fetch
,下载最新的提交并添加到本地远程跟踪分支 -
git merge
将您当前的工作(您最近的本地提交)与从远程 下载的最新提交合并。
我建议你花几分钟阅读一些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
手动删除隐藏状态。