2011-09-14 211 views
0

好吧,所以我有一堆从我配置和测试我的git安装提交时,现在我试图提出一个拉请求回主存储库,但我不想我在请求中所做的所有更改。从本地历史记录中删除git提交,并推送到github

我怎样可以删除所有提交的选择范围,并让他们在临时区域

做出了规定提交的范围拉请求。

回答

1

有很多种方法可以做到这一点,但也许最简单的方法是创建一个基于上游的新分支,在请求中挑选所需的所有提交到新分支,然后发出拉取请求为那个新的分支。例如:

# Update your remote tracking branches: 
git fetch origin 

# Create a new branch based on the latest upstream master: 
git checkout -b my-awesome-feature origin/master 

# Cherry-pick some commits: 
git cherry-pick abcdef 
git cherry-pick 123456 
git cherry-pick a1b2c3 

# Push that branch to your github repository: 
git push github my-awesome-feature 

然后转到GitHub并发出pull请求。 (我假设这里说的远程origin指向原始项目,远程github点到GitHub上你的叉子。)

这将确保您的拉请求将只包含提交abcdef123456a1b2c3

+0

好吧,没有真的做我想要的所有提交与我一起如何丢弃旧提交,我想我所做的更改我只是想恢复他们回到暂存区 – BillPull

+0

如果你仍然拥有所有的提交,那么我想'origin' remote是你在GitHub上的仓库,而不是你想要把你放入的上游仓库。你有没有为上游仓库添加一个远程服务器,如果是,那叫什么? –

+0

@BillPull,你正试图对付版本控制系统的本质。他们保留你的提交,这样如果你犯了一个错误,你总是有一个要点返回。他们不会让你删除你的提交,因为他们在保护你免于你自己! – Shahbaz

相关问题