git - Git:为什么在我全新的分支中会出现另一个分支的文件?
问题描述
我在一个分支上工作并将其推送到 Github 并创建了一个 Pull Request。我注意到那里有一堆来自另一个分支的文件。
所以,我关闭了 PR,检查了我的 master 分支,从 master 更新它并创建了一个全新的分支。在触摸我运行git status
的任何文件之前,可以预见地没有返回任何更改。然后,作为一个实验,我将这个空分支推送到 Github 上的 master 并创建了一个新的 PR。PR 附有相同的额外文件。
有人会知道发生了什么吗?为什么来自另一个分支的文件会附加到我的新分支?
我采取的步骤:
git checkout master
git pull origin master
git checkout -b new-branch
git status //nothing here
git push origin new-branch
//open Github, create PR from new branch, see that it has a bunch of files in it already
解决方案
可能你master
的领先 origin/master
。
也就是说,紧随其后:
git checkout master git pull origin master
如果你运行:
git log --decorate --oneline --graph --boundary origin/master...master
你得到什么作为输出?(注意这里的三个点,虽然两个点会得到相似的信息。)如果这里出现了一些东西,你得到的结果可能是预期的。您还可以运行:
git rev-list --count origin/master..master
(这次注意两个点);如果输出不为零,那么所有这些都是有道理的。
git checkout -b new-branch
这将创建new-branch
指向与您的(常规的、本地的)分支名称相同的提交master
的新名称。您可能想要一个指向与您的origin/master
. 如果origin/master
正在选择与 不同的(较旧的)提交master
,则您在此处选择了错误的提交。
git status //nothing here
由于您刚刚创建new-branch
,因此这里没有什么值得报告的内容。
git push origin new-branch
这会让你的 Git 在origin
(在 GitHub 上)调用 Git,并要求他们创建他们的名字branch
,以便它选择与你的名字相同的提交branch
。如果那个提交在他们master
之前origin/master
——你的——并且你现在提出了一个拉取请求,那个拉取请求将包含你的提交master
,而他们master
没有。
推荐阅读
- flutter - 使用 StreamBuilder 从 Firestore 显示当前用户的数据(不是所有用户的数据)
- python - Django - 如何捕获和记录选定的图像
- r - R ggridges:基于第三个变量的颜色 geom_ridges_density_gradient
- jenkins - jenkins 构建配置 - 打包 EAR 问题
- c# - 当名称是保留关键字时,如何从动态对象中获取属性?
- c# - 如何在 ASP net core 中添加扩展过滤器?
- angular - 复选框值不在表单数组中,角度
- javascript - 使用 Jest.fn() 查看是否调用了 s3.upload 函数......我做错了什么?
- java - 如何将 yaml 文件中的变量读入 application.properties?
- javascript - MongoDB $和查询