gerrit

pull代码

场景:

提交到远程后,本地进行了reset操作。此时远程仓库代码比本地仓库代码更新。导致本地无法提交代码(会报错,因为会覆盖远程)

To github.com:echowant/want-source.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@github.com:echowant/want-source.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.

办法:

不能git pull同步代码到本地,需要执行git pull –rebase,该参数的含义是:

1.把本地working copy从上次 pull 之后的变更暂存起來

2.恢复到上次 pull 时的状态

3.合并远端的变更到本地

4.最后再合并刚刚暂存下來的本地变更

如果遇到了冲突,解决对应的冲突即可。

git pull的默认行为是git fetch + git merge

git pull –rebase则是git fetch + git rebase.

因此,使用git fetch,然后在merge或者rebase来解决冲突,会比直接使用git pull更好,这样更容易解决出现的冲突。

####

git pull –rebase

本地同步到远程最新,

然后本地修改并提交记录,

他人有推送并合入到远程仓库,

在没有冲突的情况下,当拉取远程提交记录到本地并变基时,会将本地提交记录节点移动到更新的远程记录之后。常用于同步最新代码。如果无法处理好解冲突操作,请使用后面的cherrypick方式来同步。

-------------Keep It Simple Stupid-------------
0%