在Git中将本地主分支与远程主分支合并

在Git中将本地主分支与远程主分支合并,git,git-merge,Git,Git Merge,我遇到了一个奇怪的情况:我把一个以前的开发人员的目录(本地存储库)复制到了我的机器上。有几个提交到远程主机的操作不在其本地存储库中 如何将母版的本地副本与远程母版的最新更改合并?案例1:远程/母版拥有本地母版所拥有的一切 如果remote/master包含本地master包含的所有提交,只需执行git pull: git checkout master git pull remote master 您可以使用以下命令检查本地主机是否有远程/master未提交的提交: git fetch rem

我遇到了一个奇怪的情况:我把一个以前的开发人员的目录(本地存储库)复制到了我的机器上。有几个提交到远程主机的操作不在其本地存储库中

如何将母版的本地副本与远程母版的最新更改合并?

案例1:远程/母版拥有本地母版所拥有的一切 如果
remote/master
包含本地
master
包含的所有提交,只需执行
git pull

git checkout master
git pull remote master
您可以使用以下命令检查本地
主机
是否有
远程/master
未提交的提交:

git fetch remote
git log --oneline --graph remote/master..master
这将显示
master
中包含但不在
remote/master
中的所有提交。如果您没有看到任何输出,这意味着
remote/master
拥有本地
master
所拥有的一切

案例2:本地主机有远程/主机没有的提交 如果本地
master
包含
remote/master
不包含的提交,您必须弄清楚如何处理该提交。您想保留它们并将它们与
remote/master
合并,还是只想将它们扔掉

案例2a:将本地主机提交合并/重设为远程主机提交 如果要保留它们,您可以使用
远程/master
将本地
主机
远程/master
进行
合并
重设基址

git签出主机
git获取
#合并远程/主机
git合并远程/主机
#或者在顶部重新设置本地提交的基础
git rebase远程/主机
#推动结果
git推送远程主机
案例2b:丢弃本地主服务器 如果不想保留本地提交,则只需将本地
主机
硬复位到与
远程/master
相同的点即可:

git签出主机
git远程获取
git重置--硬远程/主控
文档
您可以从中阅读有关所有这些命令的更多信息。我还强烈推荐优秀的,特别是第1-3章和第6-6.5章。

回购协议是否仍设置为指向同一远程主机?是否有任何东西阻止您简单地拉合并?谢谢。如果遥控器是私人回购怎么办?“git merge”步骤失败,因为我无法通过远程身份验证。@MishaTeplitskiy
git merge
仅在数据的本地副本上运行,它不应该因为私有远程repo的身份验证问题而失败。我想你是说
git-fetch
git-pull
失败了,对吗?听起来你需要解决身份验证问题。您如何通过SSH连接到远程服务器?您是否具有访问专用遥控器的正确凭据?您使用的是GitHub、Bitbucket还是类似的东西?或者远程自托管在什么地方?谢谢@Cupcake。我在ssh和其他方面遇到了权限问题,我已经解决了这个问题。谢谢