git问题从分支仓库到主仓库创建PR

时间:2018-11-27 17:04:18

标签: git github

这是我第一次为开源项目做贡献,并且遇到了git问题。 我最初对仓库进行了分叉,然后将其删除,然后对其进行了分叉。 我从派生的管理员那里签出了一个dev分支,做了一些工作,现在我想为主仓库创建PR。 但是它说完全不同的提交历史。

我尝试了以下步骤,但没有帮助我

git remote add upstream https://github.com/some_user/some_repo
git fetch upstream
git checkout master
git reset --hard upstream/master  
git push origin master --force

在这方面的任何帮助将不胜感激

git log -n10 upstream/master returns below snapshot

enter image description here

git log -n10 origin/dev returns below snapshot

enter image description here

git log -n10 origin/master returns below snapshot

enter image description here

1 个答案:

答案 0 :(得分:2)

根据您发布的第二张屏幕截图,您似乎遵循了以下步骤:

您何时需要使用派生叉或原始GitHub存储库,然后下载其中的zip文件,进行更改,然后执行git init,然后将其强行推入您的派生叉。

基本上发生的是,在执行此操作的过程中,您仅将文件复制到了fork中,而不是完整的历史记录。

既然我们现在知道发生了什么,我们就可以开始解决此问题,并且由于原始存储库不是很忙于流量,因此现在更容易解决。

因为我们要保留原始文件,但要合并历史记录,所以我们需要执行以下步骤:

  1. 对原始目录进行备份(明智的做法是随时进行备份)
  2. 创建一个具有原始文件和历史记录的新项目:git clone https://github.com/your_name/your_fork
  3. 从备份中复制文件,并将其移动到新项目,并确保排除.git目录。
  4. 运行git status,这应该仅显示根据基本状态 1
  5. 更改的文件
  6. 如果一切正确,我们需要立即“上传”文件
  7. 将更改的文件添加到git:git add .
  8. 提交更改:git commit -m "Adding my feature"(我建议您使用 more 描述性提交消息)
  9. 将更改推送到您的fork:git push

现在,转到原始 GitHub存储库,并尝试在那里建立PR,现在应该没问题。

1。如果git status不显示任何文件更改,则可能是因为您不小心从备份中复制了.git目录