rebase是否会阻止Git中的pull请求?任何陷阱?

时间:2015-12-03 18:59:57

标签: git git-rebase

这可能是关于.git的基本问题,但我不习惯使用rebase功能。我知道这是将Master的最新变化整合到本地分支的一种方式。

它是否会阻止拉取请求的产生,还是我应该注意哪些陷阱?我相信我可以在rebase之后将我的本地分支更改推送到主存储库,然后在那里创建一个在Master中集成的pull请求,对吗?

1 个答案:

答案 0 :(得分:4)

A"拉取请求"不是Git对象模型中的概念。

拉取请求是向项目提供一些新代码。基本上,"请将我所做的更改合并到您的项目" 中。

"创建拉取请求"虽然Git有request-pull命令可以将一些更改汇总到文本消息中,但它不是Git操作。

git pull命令从远程存储库(如git fetch)中获取对象,然后执行git rebasegit merge,具体取决于将哪个操作配置为默认值

你可能会混淆Git,版本控制工具与基于Git的某些项目托管网站的设施(其#34;拉取请求"可能不是基于使用git request-pull的输出所有)。

git pull和"拉取请求"是完全不同的事情。实际上,您不希望通过从其存储库中盲目git pull来满足某人的要求,以便为您的项目添加代码。

作为一般的经验法则,如果您希望让某些人尽可能轻松地合并您对项目所做的补丁,那么您有必要将这些更改重新设置为最新的代码库,以便他们干净地应用在没有任何合并的情况下。项目维护人员通常不想听,"我根据2011年检索到的项目副本做了一些更改;你可以为我合并吗?"

但是,如果你告诉某人你在特定的GIT仓库中有一些变化,你希望他们使用,由SHA提交哈希标识,然后你重新定义这些变化,那个人实际上有一个过时的请求指向对你的更改的旧的,未经修改的版本。

Git有一个命令request-pull,它基本上是一个创建拉取请求的查询,它只是一个识别和总结某些更改的文本消息。该命令还执行完整性检查,确定广告的更改范围在给定的git URL上实际可用,如果URL不正确,则会捕获您,或者您还没有推送更改(您不小心)在本地回购中的一些未发布的更改中宣传拉取请求。)