合并其他人推送重新代码?

时间:2015-07-20 08:59:50

标签: git

我在本地没有推送提交。其他人已将代码推送到自我拉动以来已经重新定位的仓库。我正常推拉是否安全?

3 个答案:

答案 0 :(得分:1)

Git会阻止你推送文件,它会让你知道你的文件不是最新的,你可以这样做

git pull --rebase <remote> <branch>

您可能必须在推送代码之前解决冲突

答案 1 :(得分:1)

如果远程仓库的历史记录已更改(因为强制推送了rebase),这意味着在git fetch之后,您的仓库将如下所示:

        Z--Z--Z (new rebased origin/master)
       /
x--x--x--x--y--y (master with local unpushed commits 'y')
          \
           X--X (old origin/master)

目标是记住您的本地提交,在新的origin / master上重置您的master并重新设置您的本地提交:

git checkout master
git fetch
git branch tmp
git reset --hard origin/master



x--x--x--Z--Z--Z (master, reset to new rebased origin/master)
       \
        x--y--y (tmp with local unpushed commits 'y')

现在变种了:

git checkout tmp
git rebase origin/master
git checkout master
git merge tmp
git branch -d tmp

x--x--x--Z--Z--Z--x'--y'--y' (master, on top of origin/master)

然后,你可以正常推/拉。

答案 2 :(得分:0)

你需要拉动然后进行合并。然后你推。 只有在本地文件是最新的时才能推送。