git 应用 远程仓库分歧

1.clone远程仓库
这里写图片描述
2.在本地提交一次git commit
这里写图片描述
3.在远程仓库上同伴分别对master和test1分支进行了提交
这里写图片描述
4.这时不能直接push,因为远程仓库和本地仓库产生了分歧,远程仓库master分支已经到c5,而本地分支的o/master还是c2
这里写图片描述
5.这个时候可以使用两种方法解决这个分歧
5.1 使用git fetch和git merge
5.1.1将远程仓库的信息拉回到本地git fetch,注意所有的分支都进行了更新
这里写图片描述
5.1.2将本地的master分支和远程o/master分支进行合并git merge o/master
这里写图片描述
5.1.3将本地的修改提交到远程分支git push
这里写图片描述

这里看到test1,分支并没有做任何改动,因为git push 默认的只是push,HEAD指针所在的分支
git pull = git fetch + git merge,不推荐使用git pull
5.2使用git rebase
5.2.1 git rebase o/master
这里写图片描述
5.2.2 git push
这里写图片描述

### 解决 Git 推送远程仓库时报错的方法 当遇到 `git push` 到远程仓库失败的情况时,可能由多种因素引发。以下是几种常见错误及其解决方案。 #### 1. 同步本地与远程分支历史记录 对于首次推送或长时间未同步的项目,可能会因为本地和远程的历史不同而导致冲突。此时可以尝试使用带有参数的拉取命令来强制合并两个不相关的历史: ```bash git pull origin master --allow-unrelated-histories[^1] ``` 这会将远程最新的更改下载至本地,并试图自动融合差异之处。如果有任何无法自动化处理的地方,则需人工介入调整直至无误为止。 #### 2. 处理本地额外文件引起的推送问题 有时即使本地包含了更多独有的改动也不会影响上传过程,但如果存在同名却内容不同的文件则可能导致拒绝接收更新的现象发生。确保遵循如下原则可减少此类麻烦的发生几率:即只要不是完全相同的路径下的相同命名资源,在不影响功能的前提下是可以存在于各自环境中的[^2]。 #### 3. 使用 rebase 方式解决冲突 另一种方式是在执行推送之前先通过变基(rebase)的方式使当前工作基于最新的上游版本之上,从而避免直接产生分歧点: ```bash git pull --rebase origin master git push origin master ``` 这种方式能够保持线性的提交历史,使得后续的操作更加顺畅[^4]。 #### 4. 应对网络连接异常导致的 SSL 错误 针对由于网络状况不佳所造成的 OpenSSL 类型的问题(如 "Connection was reset"),建议检查互联网链接稳定性的同时也确认防火墙设置是否阻止了必要的端口通信。另外还可以考虑切换协议从 HTTPS 改成 SSH 来绕过某些特定的安全策略限制[^5]: ```bash # 更改远程 URL 至 SSH 形式 git remote set-url origin git@github.com:<用户名>/<项目>.git ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值