我在本地没有推送提交。其他人已将代码推送到自我拉动以来已经重新定位的仓库。我正常推拉是否安全?
答案 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)
你需要拉动然后进行合并。然后你推。 只有在本地文件是最新的时才能推送。