git如何取消上次push

不及物动词 其他 428

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    取消上次push的方法有两种,可以通过修改commit或者回退到上一个commit来实现。

    方法一:修改commit
    1. 首先,使用以下命令查看提交历史:`git log`,找到需要取消的commit的哈希值(commit id)。
    2. 然后,使用以下命令进行修改commit:`git rebase -i commit_id~1`,将`commit_id`替换为需要取消的commit的前一个commit的哈希值。
    3. 这时会弹出一个交互式界面,展示了需要修改的commit列表。找到需要取消的commit,并将其前面的`pick`改为`edit`。
    4. 保存并关闭编辑器,然后按照命令行提示逐步进行操作。
    – 使用`git commit –amend`命令修改commit的内容,如果不需要修改,可以直接保存关闭编辑器。
    – 使用`git rebase –continue`命令继续rebase过程。
    – 最后,使用`git push –force`命令将修改后的提交强制推送到服务器。注意:这会覆盖远程分支上的提交,请谨慎使用。

    方法二:回退到上一个commit
    1. 首先,使用以下命令查看提交历史:`git log`,找到需要取消的commit的哈希值(commit id)。
    2. 然后,使用以下命令回退到上一个commit:`git revert commit_id`,将`commit_id`替换为需要取消的commit的哈希值。
    3. 这时会弹出一个编辑器界面,显示需要commit的变更内容。如果需要修改内容,可以进行修改;如果不需要修改,保存并关闭编辑器即可。
    4. 最后,使用`git push`命令将修改后的提交推送到服务器。

    需要注意的是,取消push后需要与协作开发者进行沟通,避免他们在取消的commit基础上进行工作。同时,如有必要,请谨慎使用`–force`选项,避免不必要的麻烦。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要取消上次push的git操作,有几种方法可以尝试。以下是五种常用的方法:

    1. 使用git revert命令:git revert是一个用于取消指定提交的命令。如果您只想取消上次push的提交,可以使用git log命令查看最新提交的哈希值,然后使用git revert 来取消提交。这将创建一个新的提交,包含了之前提交的相反的更改。您可以使用git push命令将此撤消提交推送到远程仓库。

    2. 使用git reset命令:git reset命令可以对当前分支进行重置。要取消上次push,可以使用以下命令:git reset HEAD~1。这将回滚到上一次提交的状态,但不会创建新的撤消提交。此时,您可以更正这个状态并再次提交。然后,可以使用git push –force命令将更改推送到远程仓库。

    3. 使用git reflog命令:git reflog命令可以显示仓库上的所有提交记录,包括已删除的提交。您可以使用git reflog命令找到之前的提交哈希值,然后使用git reset 命令将HEAD指针移动到该提交。然后,您可以更正这个状态并进行新的提交。最后,使用git push –force命令将更改推送到远程仓库。

    4. 使用git cherry-pick命令:git cherry-pick命令可以选择性地将指定提交应用到当前分支。如果您想取消上次push的提交,可以使用git log命令查找要撤消的提交的哈希值,然后使用git cherry-pick -n 命令将该提交应用到当前分支,但不提交更改。然后,您可以修改这个撤销的提交并进行新的提交。最后,使用git push命令将更改推送到远程仓库。

    5. 使用git revert加上force推送:如果您想彻底删除上次push的提交并覆盖远程仓库,可以使用git revert命令结合–no-commit选项。首先,运行git revert –no-commit命令,以取消上次push的更改并将其应用到本地仓库。然后,进行必要的更改和修改,最后使用git push –force命令将更改推送到远程仓库。

    请注意,这些方法可能会影响其他团队成员的仓库。如果您的更改已经被其他人合并或推送,建议与团队协商并将这些方法在团队中使用。

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

    取消上次 push 操作的方法有两种:一种是使用 `git revert` 命令,另一种是使用 `git reset` 命令。具体操作步骤如下:

    ## 方法一:使用 git revert 命令

    1. 首先,使用 `git log` 命令查看当前分支的提交记录,找到要取消的提交记录的 commit ID。

    “`shell
    $ git log
    commit e8ad4944f2e7a872a362ec81f272c45063a1e956 (HEAD -> master)
    Author: John Doe
    Date: Mon May 10 14:36:53 2021 +0800

    Update README.md

    commit 5f42baeae1eac06e862dcc803f34c7b3d9e54c7e
    Author: John Doe
    Date: Mon May 10 14:36:13 2021 +0800

    Add new feature


    “`

    2. 使用 `git revert` 命令回滚到指定的提交记录。

    “`shell
    $ git revert e8ad4944f2e7a872a362ec81f272c45063a1e956
    “`

    3. Git 会自动生成一个新的提交记录,将要取消的提交记录的修改内容撤销。会弹出一个文本编辑器,用于编辑提交日志。保存退出后,回滚提交就完成了。

    ## 方法二:使用 git reset 命令

    1. 同样,使用 `git log` 命令查看提交记录,找到要取消的提交记录的 commit ID。

    “`shell
    $ git log
    commit e8ad4944f2e7a872a362ec81f272c45063a1e956 (HEAD -> master)
    Author: John Doe
    Date: Mon May 10 14:36:53 2021 +0800

    Update README.md

    commit 5f42baeae1eac06e862dcc803f34c7b3d9e54c7e
    Author: John Doe
    Date: Mon May 10 14:36:13 2021 +0800

    Add new feature


    “`

    2. 使用 `git reset` 命令将当前分支回滚到要取消的提交记录之前。

    “`shell
    $ git reset e8ad4944f2e7a872a362ec81f272c45063a1e956
    “`

    – `git reset` 命令默认使用 `–mixed` 参数,回滚到指定的提交记录,并将后续的修改内容暂存。

    – 使用 `–soft` 参数可以回滚到指定的提交记录,并保留后续的修改内容。

    – 使用 `–hard` 参数可以回滚到指定的提交记录,并丢弃后续的修改内容。

    3. 回滚完成后,可以使用 `git push` 命令将回滚的结果推送到远程仓库。

    “`shell
    $ git push origin master
    “`

    注意:使用 `git reset` 命令回滚提交之后,被回滚的提交记录将会消失。如果之前已经将这些提交推送到远程仓库,回滚之后,需要使用 `git push –force` 命令强制推送。

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

400-800-1024

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

分享本页
返回顶部