PRO CODE Asked:2021-11-30 21:09:31 +0000 UTC2021-11-30 21:09:31 +0000 UTC 2021-11-30 21:09:31 +0000 UTC git如何将提交推送到另一个分支 772 如果您已经在 git 中进行了提交,例如在 master 中,然后意识到最好将其移动到另一个分支(尚不存在),该怎么办。如何确保这个commit不在master中,而是出现在一个新的分支中,同样需要创建。 git 3 个回答 Voted Best Answer Serj1c 2021-11-30T21:32:37Z2021-11-30T21:32:37Z 可以这样做: 创建一个新分支 切换到它并执行 git cherry-pick “commit-hash”(要迁移的提交的哈希号) 返回 master 并执行 git reset HEAD~1 (HEAD 指向的提交之前的提交) aleksandr barakin 2021-12-01T02:16:11Z2021-12-01T02:16:11Z 像往常一样,提醒一下: git程序中的“branch”(“分支”)是一个指向提交的浮动指针(也有固定指针-标签(“标签”,我们不再讨论它们)。 我们有什么?相互关联的提交链(“历史”,“历史”)(箭头表示提交的关系 - 从子到父的方向): б → а → … → самый_первый_коммит 并且有一个指向名为“branch1”的提交的指针(指向最近的提交“b”): ветка1🡮 б → а → … 我们需要什么?将指针“branch1”移动到提交“a”,同时创建一个指向提交“b”的新指针“branch2”: ветка2🡮 🡯ветка1 б → а → … 从头开始更容易 - 首先创建一个新指针(“branch2”)作为现有指针(“branch1”)的副本: $ git checkout -b ветка2 ветка1 然后移动指针“branch1”以提交“a”(如果需要,或者历史上的任何其他内容)。 这里有很多不同的选择。对于这种情况,当置换指针不是当前指针时,您可以使用以下命令branch: $ git branch -f ветка1 хэш_коммита_«а» 在这种情况下,选项-f( --force) 是必需的,因为 修改现有指针。没有它,git会抛出一个错误并且什么都不会改变。 logps 使用带有选项的命令控制进程很方便--all: $ git log --all 输出还将包含它们当前指向的提交旁边的指针名称。 Qwertiy 2021-11-30T21:50:55Z2021-11-30T21:50:55Z 将本地 master 重命名为所需的新分支。 删除跟踪参考。 推。
可以这样做:
像往常一样,提醒一下: git程序中的“branch”(“分支”)是一个指向提交的浮动指针(也有固定指针-标签(“标签”,我们不再讨论它们)。
我们有什么?相互关联的提交链(“历史”,“历史”)(箭头表示提交的关系 - 从子到父的方向):
并且有一个指向名为“branch1”的提交的指针(指向最近的提交“b”):
我们需要什么?将指针“branch1”移动到提交“a”,同时创建一个指向提交“b”的新指针“branch2”:
从头开始更容易 - 首先创建一个新指针(“branch2”)作为现有指针(“branch1”)的副本:
然后移动指针“branch1”以提交“a”(如果需要,或者历史上的任何其他内容)。
这里有很多不同的选择。对于这种情况,当置换指针不是当前指针时,您可以使用以下命令
branch
:在这种情况下,选项
-f
(--force
) 是必需的,因为 修改现有指针。没有它,git会抛出一个错误并且什么都不会改变。log
ps 使用带有选项的命令控制进程很方便--all
:输出还将包含它们当前指向的提交旁边的指针名称。