这可能是关于.git
的基本问题,但我不习惯使用rebase
功能。我知道这是将Master的最新变化整合到本地分支的一种方式。
它是否会阻止拉取请求的产生,还是我应该注意哪些陷阱?我相信我可以在rebase之后将我的本地分支更改推送到主存储库,然后在那里创建一个在Master中集成的pull请求,对吗?
答案 0 :(得分:4)
A"拉取请求"不是Git对象模型中的概念。
拉取请求是向项目提供一些新代码。基本上,"请将我所做的更改合并到您的项目" 中。
"创建拉取请求"虽然Git有request-pull
命令可以将一些更改汇总到文本消息中,但它不是Git操作。
git pull
命令从远程存储库(如git fetch
)中获取对象,然后执行git rebase
或git merge
,具体取决于将哪个操作配置为默认值
你可能会混淆Git,版本控制工具与基于Git的某些项目托管网站的设施(其#34;拉取请求"可能不是基于使用git request-pull
的输出所有)。
git pull
和"拉取请求"是完全不同的事情。实际上,您不希望通过从其存储库中盲目git pull
来满足某人的要求,以便为您的项目添加代码。
作为一般的经验法则,如果您希望让某些人尽可能轻松地合并您对项目所做的补丁,那么您有必要将这些更改重新设置为最新的代码库,以便他们干净地应用在没有任何合并的情况下。项目维护人员通常不想听,"我根据2011年检索到的项目副本做了一些更改;你可以为我合并吗?"
但是,如果你告诉某人你在特定的GIT仓库中有一些变化,你希望他们使用,由SHA提交哈希标识,然后你重新定义这些变化,那个人实际上有一个过时的请求指向对你的更改的旧的,未经修改的版本。
Git有一个命令request-pull
,它基本上是一个创建拉取请求的查询,它只是一个识别和总结某些更改的文本消息。该命令还执行完整性检查,确定广告的更改范围在给定的git URL上实际可用,如果URL不正确,则会捕获您,或者您还没有推送更改(您不小心)在本地回购中的一些未发布的更改中宣传拉取请求。)