You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何恢复Git远程仓库上次推送的数据?如何获取推送信息制作Ubuntu MR别名?

嘿,我来帮你搞定这两个Git相关的问题!

1. 恢复上次推送到远程仓库的数据

首先得明确场景:如果远程仓库还没被其他人提交修改,那恢复起来很简单;如果已经有其他人的提交,强制覆盖会丢数据,这时候得先和团队协调。

  • 第一步:找到上次推送的提交哈希
    Git会记录所有本地操作的日志,用git reflog就能看到。你会看到类似这样的条目:

    abc1234 HEAD@{2}: push: refs/heads/main to origin/main
    

    这里的abc1234就是你上次推送的提交哈希,记下来。

  • 第二步:恢复远程分支(如果远程已经被错误覆盖)
    注意:这个操作会强制覆盖远程分支的内容,只有在确认远程分支没有其他人的新提交时才能用,否则会丢失别人的工作!
    执行强制推送,把之前的提交推回远程:

    git push -f origin abc1234:<你的远程分支名>
    

    比如你的远程分支是main,就写git push -f origin abc1234:main。

  • 如果本地的提交也丢了:
    先用reflog恢复本地分支:

    git checkout -b recover-branch abc1234
    

    之后再把这个分支推到远程(如果需要的话)。

2. 找回推送完成后的信息,以及创建Ubuntu别名打开MR

找回推送相关信息

推送后的输出内容(比如推送的分支、提交哈希、远程地址)其实可以通过Git的日志和命令找回:

  • 用git reflog找最近的推送记录,里面会明确标注哪个提交被推送到了哪个远程分支,和前面恢复数据时用的方法一样。
  • 查看上次推送的提交详情:git show --stat <提交哈希>,能看到提交的改动和基本信息。
  • 查看当前分支的远程跟踪信息:git rev-parse --abbrev-ref @{u},会返回类似origin/main的结果,告诉你当前分支关联的远程分支。
  • 如果想查看Git的推送历史日志,还可以用git log --grep="push",过滤出包含push关键词的日志条目。

创建Ubuntu别名一键打开MR

假设你用的是GitLab(如果是GitHub,只需修改URL格式),可以在~/.bashrc或~/.zshrc里添加下面的别名脚本:

alias open-mr='
# 获取当前工作分支名
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
# 获取远程仓库的URL
REMOTE_URL=$(git config --get remote.origin.url)
# 从SSH格式的URL里提取项目路径(比如 git@gitlab.com:user/repo.git → user/repo)
PROJECT_PATH=$(echo $REMOTE_URL | sed -E "s/git@gitlab\.com:(.*)\.git/\1/")
# 生成GitLab的MR链接,默认目标分支是main,你可以改成自己常用的分支(比如dev)
MR_URL="https://gitlab.com/$PROJECT_PATH/merge_requests/new?merge_request[source_branch]=$CURRENT_BRANCH&merge_request[target_branch]=main"
# 用Ubuntu默认工具打开URL
xdg-open $MR_URL
'

如果是GitHub,把PROJECT_PATH的处理和MR_URL改成下面的:

PROJECT_PATH=$(echo $REMOTE_URL | sed -E "s/git@github\.com:(.*)\.git/\1/")
MR_URL="https://github.com/$PROJECT_PATH/compare/main...$CURRENT_BRANCH"

添加完别名后,执行source ~/.bashrc(或者source ~/.zshrc)让别名生效,之后在Git仓库目录里输入open-mr就能一键打开当前分支的MR页面了!

内容的提问来源于stack exchange,提问作者LukeD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:58:00