Git 更改主分支并将其推送到本地提交
让我解释一下发生了什么。。。我们正在一个项目上与一个由3人组成的小组合作。但上周有两个新人在帮助我们。因为真正的团队只有3个人,所以我们没有创建分支或类似的东西。因此,每当有人需要推送时,都会出现以下情况:Git 更改主分支并将其推送到本地提交,git,gitlab,Git,Gitlab,让我解释一下发生了什么。。。我们正在一个项目上与一个由3人组成的小组合作。但上周有两个新人在帮助我们。因为真正的团队只有3个人,所以我们没有创建分支或类似的东西。因此,每当有人需要推送时,都会出现以下情况: 将文件添加到索引 承诺 拉 修复冲突并将其标记为marged 如果需要,请再次提交并推送 现在我们有个问题。对于其中一个新人来说,Git的行为非常奇怪。有时pull不会产生任何问题,有时就像昨天一样,它认为他修改了很多文件,这是不正确的。。。修改,它看到的是旧版本的文件,拉应该更新到新版本。
git branch -D master
git checkout -b master-bk-teammembername
git branch -D master
git push origin master -f
git branch -D master
git checkout -b master-bk-teammembername
git branch -D master
git fetch --all
git checkout master
git checkout master # make sure you are on the new master branch
git log master-bk
git log master-bk --stat # to show stats on files changed
git log master-bk -p # to show actual changes
然后使用所需提交的散列,并使用cherry-pick将它们应用于主分支
git cherry-pick <COMMIT-HASH>
*确保与您的团队一起检查结果
其他高级解决方案也可用,例如,对分支进行重定基址以迭代方式选择所需的提交,但请注意,如果有人只拉重定基址的分支而不删除旧分支,则修改远程分支的历史记录可能会变得一团糟
网上有很多这方面的教程,我特别喜欢
您还可以使用其他工具来可视化提交历史记录,如sourcetree、gitkrakenOk,但是让新分支成为git存储库上的主分支怎么样?更重要的是,为什么会发生这种情况?为什么只有一个人造成了这个问题?因为这是第二次,但第一次我们恢复了推送,因为他是当时唯一做了一些更改的人。我描述了您和您的团队成员需要执行的步骤,以使您的
newmasterbranch
成为新的主分支,步骤4将推送将在远程服务器上重播主分支。我的客人是,当他做出改变时,这个人真的远远落后于历史。更频繁地拉取更改可能会避免这种混淆,而且合并提交可能会混淆,特别是在冲突解决方面。也许是您的团队开始使用分支的时候了?互联网上有很多很好的教程,在我开始使用git时对我帮助很大。是的,谢谢你描述这个,但我要求提供这个,因为这只是我的想法。也许我们有更好的办法?关于分支,也许我们应该开始使用它们,因为团队越来越大了。