我一直在开发一个网页,遇到了同步本地Git和Github的问题。这就是我一直在做的事情:
- 我从master分支开始
- 我创建了一个名为";标题";用于页面的页眉
- 我提交了更改并将其推送到Github
- 我做了一次公关;标题";与master
- 我重复了这个步骤;主";分支
- 我重复了这个步骤;页脚";分支
现在,我已经从";标题""main";,以及";页脚";因为我一直在构建我的网页。
我现在有问题,我的Gibhub显示给我这些消息:
对于";标题":该分支在主之后8次提交
对于";"main":该分支在主之后3次提交
对于";页脚":此分支比主提前1个提交
我尽可能多地尝试公关;主";分支中有我想要的一切,这就是我目前所拥有的。我如何让它们与大师同步?我把这件事搞砸了吗?
谢谢。
考虑到您的分支在不同的时间点被合并到master(通过Pull Request(,您似乎会得到各种"CCD_ 1";对于每个分支
如果您想将其中一个分支重置为当前的主分支(当前拥有所有分支(,只需在本地重新创建它,并从最新的master
:开始处理它
git switch master
git pull
git branch -C header
# work on header
git push --force # for the first push only, or
git push --force-with-lease # for the first push only,
# if you are not alone working on the repository
# make a new PR
(参见"git push --force-with-lease
对--force
"(
这个想法是而不是在master
之上重新设置header
的基础,因为它以前已经合并到master
但是在master
之上重新创建header
很简单,以便生成新的标头PR。
事实上,这是我每天都要面对的事情!如果您可以在不进行任何本地更改的情况下开始这些步骤,那将是一件好事。
git fetch --all
git checkout master
git merge # at the end of this step, your local copy of `master` and the remote copy should be in sync. You can verify this by running `git log -1` - and all the copies of master should show up in the metadata
git checkout header
git merge # at the end of this step, your local copy of `master` and the remote copy should be in sync. IF you don't have any differences (ie incoming changes), you can skip this step.
git rebase master # This might rebase correctly or cause conflicts - if do, you will have to resolve them
git push --force-with-lease origin header
您需要对具有n commit behind master
0、main
和footer
的每个分支重复上述步骤。HTH-