我的主分支叫做218。
我是唯一使用此分支的人。
我在3周前提交了我的更改,希望执行拉取请求,但由于我需要进行更改而被拒绝。
现在我做了这些更改,我想将最新的更改提交给我的分支。
我试图提交,它告诉我需要合并和拉动。所以我做了,它搞砸了我的所有文件,并摆脱了我在过去3周内所做的更改。
我解除了这个:git reset --hard HEAD~1
现在,因为它在我的计算机上的所有文件中,所有文件都应该是这样的。但是当我做git状态时,我的更改没有显示,它说:
Your branch is behind 'origin/feature/218' by 2 commits, and can be fast forwarded. nothing to commit, working directory clean.
我想把我当前在我的本地计算机上的目前的分支机构当作现实,不要拉下任何东西,而是用我本地的东西覆盖所有内容。
我该怎么做?
答案 0 :(得分:13)
由于您是唯一一个在分支机构工作的人,因此您可以通过git push --force
覆盖远程分支的状态。
虽然你确定你是分支机构中唯一的一个吗?如果你是唯一一个在分支机构工作的人,那么只有你的提交会在遥控器上,你就没有必要做git pull
。
使用共享分支执行git push --force
会给您的团队带来更多麻烦。因此,请确保您要通过执行以下操作来删除远程分支上的2个提交:
git checkout origin/feature/218
git log -3
这将显示遥控器上的最后三次提交(你落后的2次,你分享的最后一次)确保它们是你的,并且你想要覆盖最后两次。
答案 1 :(得分:2)
git pull --rebase
我想这会解决问题。
答案 2 :(得分:0)
如果您的分支机构落后于母公司,请执行以下操作:
git checkout master (you are switching your branch to master)
git pull
git checkout yourBranch (switch back to your branch)
git merge master
合并后,检查是否存在冲突。
如果没有冲突,则:
git push
如果存在冲突,请修复您的文件,然后:
git add yourFile(s)
git commit -m 'updating my branch'
git push