Git - 包含当前更改但不包含先前提交的拉取请求
Git - Pull request with current changes but not previous commits
我从原点创建了一个分支,并在该分支上进行了更改。我做了几次提交来向朋友展示我在做什么,但我不希望这些提交在我发出拉取请求时显示在原点上。
我怎样才能使拉取请求中只显示一个提交。
我想做的是创建另一个分支,并将我以前的分支重置为 head...。但我真的不知道该怎么做。
提前致谢!
这是我会做的:
假设您从原点克隆的分支称为 A。我会再次将原点克隆到一个名为 B 的新分支。然后我会使用 --squash 标志(同时打开)将 A 分支合并到 B 分支branch B: git merge --squash A), 所以你在 Branch A 中的所有提交都将作为一个提交到 Branch B。然后你可以从你的 B 分支发出一个 pull request
您要做的是 压缩 分支上的提交。
这可以通过(在您要修改的新分支中)键入以下内容来完成:
$ git rebase -i <your_starting_commit_SHA>
然后您将能够 pick
或 squash
提交(或改写提交,使其在压缩后匹配更合适的提交消息)。
当你做这个交互式变基时,你会遇到以下问题:
pick <commit1_SHA> <commit1_message>
pick <commit2_SHA> <commit2_message>
pick <commit3_SHA> <commit3_message>
pick <commit4_SHA> <commit4_message>
# ... so on and so forth
如果您想将所有提交压缩到原始提交中,那么您将保留 pick
作为第一个提交,然后将剩余的 pick
更改为 squash
. Git 然后会将 commit2
、commit3
和 commit4
压缩为 commit1
,从而为您提供 clean 提交历史记录在你的请求请求之前。
此处的最终结果将是 单次 提交,其中包含您改写的提交消息,而不是最初的四次提交(当然用于说明目的)。
我从原点创建了一个分支,并在该分支上进行了更改。我做了几次提交来向朋友展示我在做什么,但我不希望这些提交在我发出拉取请求时显示在原点上。
我怎样才能使拉取请求中只显示一个提交。
我想做的是创建另一个分支,并将我以前的分支重置为 head...。但我真的不知道该怎么做。
提前致谢!
这是我会做的:
假设您从原点克隆的分支称为 A。我会再次将原点克隆到一个名为 B 的新分支。然后我会使用 --squash 标志(同时打开)将 A 分支合并到 B 分支branch B: git merge --squash A), 所以你在 Branch A 中的所有提交都将作为一个提交到 Branch B。然后你可以从你的 B 分支发出一个 pull request
您要做的是 压缩 分支上的提交。
这可以通过(在您要修改的新分支中)键入以下内容来完成:
$ git rebase -i <your_starting_commit_SHA>
然后您将能够 pick
或 squash
提交(或改写提交,使其在压缩后匹配更合适的提交消息)。
当你做这个交互式变基时,你会遇到以下问题:
pick <commit1_SHA> <commit1_message>
pick <commit2_SHA> <commit2_message>
pick <commit3_SHA> <commit3_message>
pick <commit4_SHA> <commit4_message>
# ... so on and so forth
如果您想将所有提交压缩到原始提交中,那么您将保留 pick
作为第一个提交,然后将剩余的 pick
更改为 squash
. Git 然后会将 commit2
、commit3
和 commit4
压缩为 commit1
,从而为您提供 clean 提交历史记录在你的请求请求之前。
此处的最终结果将是 单次 提交,其中包含您改写的提交消息,而不是最初的四次提交(当然用于说明目的)。