git如何提交到之前的提交

不及物动词 其他 204

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要提交到之前的提交,可以使用git的`git rebase`命令来实现。

    1. 首先,使用`git log`命令查看提交历史,找到要提交到的目标提交的commit ID。

    2. 使用`git rebase -i `命令来开始交互式的rebase操作。这里的commit ID是目标提交的commit ID。

    3. 这会打开一个文本编辑器,显示出你要rebase的提交历史。在编辑器中,将你要提交的commit行的`pick`改为`edit`。保存并关闭编辑器。

    4. Git会根据你的编辑,将你的当前分支回滚到目标提交之前的提交。然后它会让你进入一次rebase会话,让你修改你想修改的内容。

    5. 修改完成后,使用`git add `或`git add .`添加修改的文件,然后使用`git commit –amend`命令来修改提交。

    6. 修改提交后,使用`git rebase –continue`命令继续进行rebase操作。

    7. 如果还有其他的提交需要修改,重复步骤4-6直到所有的修改完成。

    8. 最后,使用`git push -f`命令强制推送修改后的提交。

    这样,你就成功将修改提交到了之前的提交。但是需要注意的是,强制推送修改后的提交可能会导致其他人的工作丢失,请确保你在进行这种操作时与其他人进行充分的沟通和协调。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Git中,可以使用`git cherry-pick`命令提交一个或多个之前的提交。下面是使用`git cherry-pick`提交之前的提交的步骤:

    1. 首先,使用`git log`命令查看提交记录,并找到要提交的目标提交的哈希值。

    2. 使用`git checkout`命令切换到当前分支。

    3. 使用`git cherry-pick`命令将目标提交应用到当前分支。命令的基本语法如下:
    “`
    git cherry-pick
    “`
    其中,`
    `是要提交的目标提交的哈希值。

    4. 运行`git cherry-pick`命令后,Git会将目标提交的更改应用到当前分支,并生成一个新的提交。如果应用过程中出现冲突,需要手动解决冲突。

    5. 如果要提交多个之前的提交,可以依次使用`git cherry-pick`命令将它们应用到当前分支。

    需要注意的是,`git cherry-pick`命令将会生成全新的提交,它的提交历史会不同于原始的提交历史。因此,在使用`git cherry-pick`命令提交之前的提交时,需要考虑清楚是否对提交历史造成不可逆的影响。

    另外,还有一种情况是想将之前的提交合并到当前分支中,而不是生成全新的提交。可以使用`git rebase`命令来实现这一功能。具体步骤如下:

    1. 首先,使用`git log`命令查看提交记录,并找到要合并的目标提交的哈希值。

    2. 使用`git checkout`命令切换到当前分支。

    3. 使用`git rebase`命令将目标提交合并到当前分支。命令的基本语法如下:
    “`
    git rebase
    “`
    其中,`
    `是要合并的目标提交的哈希值。

    4. 运行`git rebase`命令后,Git会将目标提交中的更改应用到当前分支。如果应用过程中出现冲突,需要手动解决冲突。

    需要注意的是,`git rebase`命令会改变提交历史,因此在使用该命令合并之前的提交时,要谨慎操作,确保不对原始提交历史造成不可逆的影响。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    如果你想将当前工作目录提交到之前的某个提交上,可以使用Git的reset命令或者rebase命令。下面将详细介绍如何实现。

    方法1:使用reset命令
    1. 首先,先使用”git log”命令查看所有的提交记录,并找到你想要回滚到的提交的commit id。

    “`
    $ git log
    commit 1234567890abcdefg
    Author: Your Name
    Date: Mon Jan 1 12:00:00 2022 +0000

    Commit message

    commit abcdef0123456789
    Author: Your Name
    Date: Sun Dec 31 12:00:00 2021 +0000

    Previous commit message
    “`

    2. 然后,运行”git reset”命令,并指定你想要回滚到的提交的commit id。

    “`
    $ git reset abcdef0123456789
    “`

    3. Git会将当前工作目录和索引回滚到指定的提交。

    4. 确认回滚后,可以使用”git status”命令检查文件的状态。

    5. 如果你想将更改提交为一个全新的提交,可以使用”git commit”命令。

    “`
    $ git commit -m “New commit message”
    “`

    方法2:使用rebase命令
    1. 首先,使用”git log”命令找到你想要回滚到的提交的commit id。

    2. 运行”git rebase”命令,并指定你想要回滚到的提交的commit id。

    “`
    $ git rebase –interactive abcdef0123456789
    “`

    3. Git会打开一个交互式的编辑窗口,列出从指定提交开始的所有提交。

    4. 将你想要回滚的提交的行前的”pick”改为”edit”,保存并关闭文件。

    5. Git将逐个应用每个提交,当应用到指定提交时,会自动停下来,等待你的命令。

    6. 运行”git reset”命令,将当前工作目录回滚到指定提交。

    “`
    $ git reset abcdef0123456789
    “`

    7. 确认回滚后,可以使用”git status”命令检查文件的状态。

    8. 如果你想将更改提交为一个全新的提交,可以使用”git commit”命令。

    “`
    $ git commit -m “New commit message”
    “`

    以上就是将当前工作目录提交到之前的提交的方法,可以根据具体情况选择使用reset命令或者rebase命令。请谨慎操作,因为回滚操作会更改Git历史记录。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部