在处理和关闭请求请求时,您有三个合并选项。创建合并提交,Squash和merge以及Rebase和merge。我不知道这些选项如何转换成实际的Git命令-尤其是关于--no-ff
。
合并对话框列出了这两个(步骤1和步骤2)示例:
git fetch origin
git checkout -b develop origin/develop
git merge master
和:
git checkout master
git merge --no-ff develop
git push origin master
但是我很困惑,因为这三个示例都是相同的示例。这是不对的。所以我想我只是在这里误解了用户界面。
Git的命令是什么,并且在--no-ff
任何地方都在使用?
在处理和关闭请求请求时,您有三个合并选项。创建合并提交,Squash和merge以及Rebase和merge。我不知道这些选项如何转换成实际的Git命令-尤其是关于
--no-ff
。
GitHub上的“进行合并”按钮对应于:
git checkout <branch>
git merge --no-ff -m <message> <commit-hash>
其中message
部分是你不得不手工生成的,因为你的本地Git不会知道拉请求(其数量,以及任何其他资料库)的细节。该branch
部分是您的目标分支:合并完成后,您要启用合并提交的分支。
请注意,此时您必须commit-hash
在存储库中具有指定的提交对象。GitHub的幕后的操纵手段,它是在GitHub上的Git仓库可用,但它是一个下所列refs/pull/
的参考,而不是一个分支名称,在该存储库中。
GitHub上的“压缩和合并”按钮对应于:
git checkout <branch>
git merge --squash <commit-hash>
git commit
与git commit
被要求,因为命令行--squash
标志开启命令行--no-commit
标记。
GitHub的“ rebase and merge”按钮对应于:
# maybe: create a branch name (consider using git checkout -b next)
git checkout <commit-hash-or-branch-name>
git rebase <branch>
git checkout <branch>
git merge --ff-only <hash-or-name>
# maybe: delete a branch name
这是最复杂的一个:commit-hash-or-name
要么是您要提供给其他两个的提交哈希ID,要么是标识该提交哈希ID的分支名称,最好是您在此操作过程中刚刚组成的临时名称。git rebase
然后,该操作必须自己成功-否则,GitHub本身将无法为您提供重新合并的功能。
如果重新设置操作确实成功,并且您选择使用分离的HEAD进行操作,则现在必须保存重新创建的提交的哈希ID。如果您选择使用某个临时分支名称来执行此操作,则此时不需要特殊设置。
现在提交的原始链已通过变基操作复制的,现在你git checkout
的分公司要更新按快进和运行git merge --ff-only
操作。您在此处提供的名称或哈希ID是成功进行的变基操作,它作为分离的HEAD的尖端生成,或更新为临时分支名称。
如果使用临时分支名称,则现在应删除该临时分支名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句