Github 拉取请求显示太多更改/提交
Posted
技术标签:
【中文标题】Github 拉取请求显示太多更改/提交【英文标题】:Github pull request shows too many changes/commits 【发布时间】:2016-12-27 04:24:00 【问题描述】:我们有两个分支:develop
和 master
。
由于某种原因,当我创建了develop
的 PR --> master
。即使我在 develop
中仅进行了一行更改,它也会显示以前提交和更改的完整列表。
此外,当我从命令行可以毫无问题地将develop
合并到master
时,它会显示“无法自动合并”。
知道会发生什么吗?以前它对我们来说很好用。
编辑:这是我们尝试将develop
合并到master
时的样子。只有最近的提交是新的。其他的以前合并过:
以及git log --oneline --decorate --all --graph
的输出
【问题讨论】:
这些额外提交中包含哪些更改?他们只是合并提交吗?请发布git log --oneline master..develop
的输出。也可能感兴趣的是git log --oneline --decorate --all --graph
。
@ScottWeldon 已添加 - 如果还有其他有用的信息,请告诉我。
@ScottWeldon ps 添加了赏金
Please don't post your console output as an image,而是复制/粘贴输出和use Markdown's code formatting。 (第一张图片可能还可以,但第二张没有在原始文本上添加任何内容。)
@ScottWeldon 在这种情况下我会反对:分支和装饰参考的颜色都很有帮助。你是对的,我仍然会添加文本表单,但是在一个 pastebin 外部链接中,以免问题过于混乱。
【参考方案1】:
您的 git 日志显示 develop
分支中有很多在 master
分支中不存在的提交。拉取请求正确显示了这些提交的列表,可以合并到 master
分支中。
要列出来自develop
分支但不属于master
分支的所有提交,您可以使用命令git log master..develop
。这应该与您在拉取请求中看到的列表相匹配。
从您的 git 日志看来,develop
之前已合并到 master
。但是由于这些合并提交不再位于master
分支中,是否有人将主分支重置为早期状态?如果您有部署到同步到 master
分支的环境,可能会回滚更改?
解决方案
让master
再次与develop
同步:
-
检查
develop
和 pull
以确保分支是最新的
用master
做同样的事情
将develop
合并到master
解决冲突
推送master
分支
现在master
将再次与develop
同步,develop
中缺少master
的提交列表应该为空。使用git log master..develop
列出这些提交。您的下一个拉取请求将仅包含您在此合并后所做的提交。
进一步调查
如果您想进一步调查您是如何进入这种状态的,您可以使用reflog
查看对master
分支所做的更改。例如,如果 develop
中最近的提交之一以前是 master
分支的一部分。
git reflog master
如果你想这样做,你可以在合并分支之前这样做,这样你就可以看到历史在修复之前的样子。
【讨论】:
【参考方案2】:我不确定我的操作是否正确。据我了解,您在development
branch 中有一个提交,所以这是我的尝试。
我正在考虑你的开发分支与master不同步的问题
在保留本地更改的同时恢复开发分支提交 git reset --soft HEAD^ # 假设最后一次提交是你的
此时,您的本地更改将按原样保留在您的计算机中
现在将其推送到 git .. 此时您可以尝试强制推送。 您可以从这里获得帮助 Rolling back a remote Git repository
存储本地更改,以便将来获得这些更改: git 存储
此时您的开发分支是干净的,没有本地更改
现在切换到 master 分支并使用远程更新它。 git checkout master & git pull origin master
切换到开发分支并使用远程更新它。 git checkout 开发 & git pull origin 开发
将主人合并到它。 git 合并大师
此时您的开发分支与 master 同步,但在本地
将开发分支推送到远程服务器: git push origin 开发者
现在你可以去 github 提 PR 看看是否仍然有区别。如果上述步骤没有问题,则不应显示任何此类差异。
现在收回您在第 2 步中隐藏的本地更改。 git stash 弹出
现在提交它并推送到开发分支并查看 PR。
如果一切正常,那么它应该显示正确的差异。 git clean
在第 2 步之后也可能会有所帮助。
【讨论】:
以上是关于Github 拉取请求显示太多更改/提交的主要内容,如果未能解决你的问题,请参考以下文章