变基是否会阻止 Git 中的拉取请求?有什么陷阱吗?
Does a rebase prevent a pull request in Git? Any pitfalls?
这可能是关于.git
的一个基本问题,但我不习惯使用rebase
功能。我知道这是将最新更改从 Master 集成到本地分支的一种方法。
它是否会阻止创建拉取请求或是否有任何我应该注意的陷阱?我相信我可以在 rebase 之后将我的本地分支更改推送到主存储库,然后在那里创建一个集成到 Master 的拉取请求,对吗?
"pull request" 不是 Git 对象模型中的概念。
拉取请求是向项目提供一些新代码。本质上,"please merge the changes I made into your project's stream".
"Creation of a pull request" 不是 Git 操作,尽管 Git 有一个 request-pull
命令,它将一些更改汇总到文本消息中。
git pull
命令从远程存储库中获取对象(如 git fetch
),然后执行 git rebase
或 git merge
,具体取决于哪个操作被配置为默认值。
您可能会混淆 Git,版本控制工具与一些基于 Git 的项目托管站点的设施(其 "pull requests" 可能不基于使用输出git request-pull
完全没有。)。
git pull
和"pull request"是完全不同的东西。事实上,您不希望通过从他们的存储库中进行盲目 git pull
来满足某人向您的项目添加代码的请求。
作为一般经验法则,如果你想让某人尽可能容易地将你为他们的项目所做的一些补丁合并,你应该将这些更改重新设置为他们最新的代码库,以便他们干净地应用在上面,没有任何合并。项目维护者一般不想听,"I made some changes based on a copy of your project I retrieved back in 2011; can you merge them for me?"
但是,如果您告诉某人您在特定的 GIT 存储库中进行了一些更改,您希望他们使用这些更改,这些更改由 SHA 提交哈希值标识,然后您对这些更改进行变基,那么该人实际上拥有过时的请求,它指向您的更改的旧的、未变基的版本。
Git 有一个命令 request-pull
,它基本上是一个创建拉取请求的查询,它只是一条识别和总结一些更改的文本消息。该命令还执行健全性检查,以确保在给定的 git URL 处实际可用的广告更改范围,如果 URL 不正确,或者您没有推送那里还没有改变(你不小心在本地仓库中发布了一些未发布的更改的拉取请求)。
这可能是关于.git
的一个基本问题,但我不习惯使用rebase
功能。我知道这是将最新更改从 Master 集成到本地分支的一种方法。
它是否会阻止创建拉取请求或是否有任何我应该注意的陷阱?我相信我可以在 rebase 之后将我的本地分支更改推送到主存储库,然后在那里创建一个集成到 Master 的拉取请求,对吗?
"pull request" 不是 Git 对象模型中的概念。
拉取请求是向项目提供一些新代码。本质上,"please merge the changes I made into your project's stream".
"Creation of a pull request" 不是 Git 操作,尽管 Git 有一个 request-pull
命令,它将一些更改汇总到文本消息中。
git pull
命令从远程存储库中获取对象(如 git fetch
),然后执行 git rebase
或 git merge
,具体取决于哪个操作被配置为默认值。
您可能会混淆 Git,版本控制工具与一些基于 Git 的项目托管站点的设施(其 "pull requests" 可能不基于使用输出git request-pull
完全没有。)。
git pull
和"pull request"是完全不同的东西。事实上,您不希望通过从他们的存储库中进行盲目 git pull
来满足某人向您的项目添加代码的请求。
作为一般经验法则,如果你想让某人尽可能容易地将你为他们的项目所做的一些补丁合并,你应该将这些更改重新设置为他们最新的代码库,以便他们干净地应用在上面,没有任何合并。项目维护者一般不想听,"I made some changes based on a copy of your project I retrieved back in 2011; can you merge them for me?"
但是,如果您告诉某人您在特定的 GIT 存储库中进行了一些更改,您希望他们使用这些更改,这些更改由 SHA 提交哈希值标识,然后您对这些更改进行变基,那么该人实际上拥有过时的请求,它指向您的更改的旧的、未变基的版本。
Git 有一个命令 request-pull
,它基本上是一个创建拉取请求的查询,它只是一条识别和总结一些更改的文本消息。该命令还执行健全性检查,以确保在给定的 git URL 处实际可用的广告更改范围,如果 URL 不正确,或者您没有推送那里还没有改变(你不小心在本地仓库中发布了一些未发布的更改的拉取请求)。