我在Github上分叉了一个存储库.我做了一些小改动并向上游提交了拉取请求,但是在我的分叉已经变得如此糟糕的情况下,我无法生成干净的拉取请求; 当我从一个分支机构开始一个有六个更改的拉取请求时,Github想要提交十三个,其中七个已经存在于上游(natch).
我的问题似乎只与拉动最新的提交有关,但是当我创建一个新的分支和樱桃选择提交时,我仍然有额外的.我futzed与基础重建为好,但现在看起来,即使我的主人是那么糟糕,我不能生成的原始副本上游.这显然是因为我不明白我需要改变而不是合并,所以显然我犯了错误; 我想要做的是弄清楚如何解开那个结并回到一个干净的状态,我可以有效地前进.
我有点想把我的叉子吹走,然后在上游做一个新的叉子,但我也认为这很困难.
承认我的Git罪后,我如何获得github赦免?
Bob*_*ger 98
步骤1:拉动上游更改
建议将上游仓库添加为"上游",如Fork a Repo页面中所述:
git pull --rebase upstream master
Run Code Online (Sandbox Code Playgroud)
该--rebase选项将您的更改置于最新提交之上,而不进行合并.
第2步:(可选)将提交合并为1次提交
git reset --soft upstream/master
Run Code Online (Sandbox Code Playgroud)
此命令将"撤消"所有提交,但不会更改文件.因此,您可以在一次提交中提交所有更改.
git commit -a
Run Code Online (Sandbox Code Playgroud)
第3步:检查并测试您的更改
要显示更改,请使用内置的gitk,Sourcetree,TortoiseGit或Tower (付费)等GUI .
第4步:推
git push将抛出错误,因为推送会改变目标存储库的历史记录.
如果您确信步骤3中显示的更改是正确的,则按"-f"
git push -f origin master
Run Code Online (Sandbox Code Playgroud)
附加信息
添加远程的命令是:
git remote add upstream git://github.com/[username]/[project].git
Run Code Online (Sandbox Code Playgroud)
您还可以从直接URL中提取:
git pull --rebase git://github.com/[username]/[project].git
Run Code Online (Sandbox Code Playgroud)
但是,在其他步骤中,您将需要最新上游提交的哈希,而不是"上游/主站".
| 归档时间: |
|
| 查看次数: |
20968 次 |
| 最近记录: |