然而,有时候会发生意外,例如代码误合、错误的删除等情况,导致重要的开发分支本地和远程不慎被删除。本文将为您介绍如何使用 Git 命令行在 GitLab 中恢复已删除的分支,帮助您快速解决这类问题。...记住这个引用号,它将帮助您恢复被删除的分支。...第二步 恢复分支 现在,您已经有了删除分支之前的引用号,可以使用以下命令在本地仓库中恢复分支: git checkout -b dev_xj d9244f1 dev_xj:你的分支名,可以和之前删除的一样...,也可以重新命个名 d9244f1:最后一次commit 的提交号或者引用号 _20230722194928.png 第三步 推送分支 如果您希望将恢复的分支同步到 GitLab 远程仓库,可以使用以下命令将分支推送到...默认情况下,过期的 reflog 记录会在 90 天后被删除。
git log --stat 如何在Git中使用diff查看在提交之前所做的更改: 您可以将文件作为参数传递,这样就只查看特定文件上的更改。 默认情况下,git diff只显示未暂存的更改。...git revert comit_id_here 如何在Git中创建一个新的分支: 默认情况下,您只有一个分支,即main分支。使用这个命令,您可以创建一个新的分支。...git checkout -b branch_name 如何在Git中删除分支: 当你完成了一个分支的工作并合并了它,你可以使用下面的命令删除它: git branch -d branch_name 如何在...origin/main 如何在Git中获取远程分支的内容而不自动合并: 这使您可以在不将任何内容合并到本地分支的情况下更新远程。...-delete origin branch_name_here 如何使用Git rebase: 可以使用git rebase将已完成的工作从一个分支转移到另一个分支。
撤销上次git add) $ git reset HEAD # 将HEAD重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改 $ git reset # 将HEAD重置到上一次提交的版本...合并: # 将分支合并到当前HEAD中 $ git merge 重置: # 将当前HEAD版本重置到分支中,请勿重置已发布的提交 $ git rebase Github..., 为 bug #14 执行 cherry-pick: (14)$ git cherry-pick 5ea5173 我想删除上游(upstream)分支被删除了的本地分支 一旦你在 github 上面合并...git fetch -p 我不小心删除了我的分支 如果你定期推送到远程, 多数情况下应该是安全的,但有些时候还是可能删除了还没有推到远程的分支。...(commit), 和分支之间不共享的提交(commit)的列表。
例如,master 分支想重置到的提交的 hash 为 a13b85e : (master)$ git reset --hard a13b85e HEAD is now at a13b85e 签出 (...最后,为 bug #14 执行 cherry-pick : (14)$ git cherry-pick 5ea5173 # 我想删除上游 (upstream) 分支被删除了的本地分支 一旦你在 github...git fetch -p # 我不小心删除了我的分支 如果你定期推送到远程,多数情况下应该是安全的,但有些时候还是可能删除了还没有推到远程的分支。...# 将分支合并到当前 HEAD 中 git merge # 将当前 HEAD 版本重置到分支中 git rebase # 撤销 rebase/merge 你可以合并...(commit), 和分支之间不共享的提交 (commit) 的列表。
撤销上次git add) $ git reset HEAD # 将HEAD重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改 $ git reset # 将HEAD重置到上一次提交的版本...合并: # 将分支合并到当前HEAD中 $ git merge 重置: # 将当前HEAD版本重置到分支中,请勿重置已发布的提交 $ git rebase Github..., 为 bug #14 执行 cherry-pick: (14)$ git cherry-pick 5ea5173 我想删除上游(upstream)分支被删除了的本地分支 一旦你在 github 上面合并...$ git fetch -p 我不小心删除了我的分支 如果你定期推送到远程, 多数情况下应该是安全的,但有些时候还是可能删除了还没有推到远程的分支。...(commit), 和分支之间不共享的提交(commit)的列表。
额外的信息 我们假定你之前已经完成了基本的教程。附加的信息将提供关于高级Git技术的一些信息。 从存储仓库中删除分支 该文档提供了如何从存储库中删除分支的信息。...这是当你感到你已经将本地存储库弄乱并希望重新设置本地存储库时需要做的事情。 如果你想撤销/重置本地提交,请执行以下步骤。...按照以下步骤学习如何在提交之前删除文件。...这个文档提供了关于如何将提交转移到另一个分支的信息。...采取这些步骤将提交转移到另一个分支。
CRLF, 而在linux下的换行符为LF,所以在执行add ....撤销上次git add) $ git reset HEAD # 将HEAD重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改 $ git reset # 将HEAD重置到上一次提交的版本...> # 删除本地分支 $ git branch -d # 强制删除本地分支,将会丢失未合并的修改 $ git branch -D 切换分支: # 切换分支 $ git...合并: # 将分支合并到当前HEAD中 $ git merge 重置: # 将当前HEAD版本重置到分支中,请勿重置已发布的提交 $ git rebase Github...默认情况下,用户的 SSH 密钥存储在其 \~/.ssh 目录下。
查看所有分支 查看项目的分支: 包括本地和远程 git branch -a 删除本地分支 git branch -d git branch -d 分支名 -d 是 --delete 的缩写,在使用...--delete 删除分支时,该分支必须完全和它的上游分支 merge 完成。...git branch -D git branch -D 分支名 -D 是 --delete --force 的缩写,这样写可以在不检查 merge 状态的情况下删除分支;--force 简写 -f,作用是将当前...branch 重置到初始点(startpoint),如果不使用 --force 的话,git 分支无法修改一个已经存在的分支....本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
我想把暂存的内容变成未暂存,把未暂存的内容暂存起来 多数情况下,你应该将所有的内容变为未暂存,然后再选择你想要的内容进行commit。...例如, main分支想重置到的提交的hash为a13b85e: (main)$ git reset --hard a13b85e HEAD is now at a13b85e 签出(checkout..., 为 bug #14 执行 cherry-pick: (14)$ git cherry-pick 5ea5173 我想删除上游(upstream)分支被删除了的本地分支 一旦你在github 上面合并...$ git fetch -p 我不小心删除了我的分支 如果你定期推送到远程, 多数情况下应该是安全的,但有些时候还是可能删除了还没有推到远程的分支。...(commit), 和分支之间不共享的提交(commit)的列表。
我想把暂存的内容变成未暂存,把未暂存的内容暂存起来 多数情况下,你应该将所有的内容变为未暂存,然后再选择你想要的内容进行commit。...例如,main分支想重置到的提交的hash为a13b85e: (main)$ git reset --hard a13b85e HEAD is now at a13b85e 签出(checkout)...$ git fetch -p 我不小心删除了我的分支 如果你定期推送到远程, 多数情况下应该是安全的,但有些时候还是可能删除了还没有推到远程的分支。...一般情况下你不关心提交(commit)的时间戳,只想组合 所有 提交(commit) 到一个单独的里面, 然后重置(reset)重提交(recommit)。...(commit), 和分支之间不共享的提交(commit)的列表。
我想把暂存的内容变成未暂存,把未暂存的内容暂存起来 多数情况下,你应该将所有的内容变为未暂存,然后再选择你想要的内容进行commit。...例如, main分支想重置到的提交的hash为a13b85e: (main)$ git reset --hard a13b85e HEAD is now at a13b85e 签出(checkout)刚才新建的分支继续工作...$ git fetch -p 我不小心删除了我的分支 如果你定期推送到远程, 多数情况下应该是安全的,但有些时候还是可能删除了还没有推到远程的分支。...一般情况下你不关心提交(commit)的时间戳,只想组合 所有 提交(commit) 到一个单独的里面, 然后重置(reset)重提交(recommit)。...(commit), 和分支之间不共享的提交(commit)的列表。
我想把暂存的内容变成未暂存,把未暂存的内容暂存起来 多数情况下,你应该将所有的内容变为未暂存,然后再选择你想要的内容进行commit。...例如, main分支想重置到的提交的hash为a13b85e: (main)$ git reset --hard a13b85e HEAD is now at a13b85e 签出(checkout)...$ git fetch -p 我不小心删除了我的分支 如果你定期推送到远程, 多数情况下应该是安全的,但有些时候还是可能删除了还没有推到远程的分支。...一般情况下你不关心提交(commit)的时间戳,只想组合 所有 提交(commit) 到一个单独的里面, 然后重置(reset)重提交(recommit)。...(commit), 和分支之间不共享的提交(commit)的列表。
它会取消这个文件的暂存,而不覆盖任何更改 $ git reset # 重置暂存区最近的一次提交,但工作区的文件不变 $ git reset # 等价于 $ git reset HEAD...^ # 将当前分支的指针指向为指定 commit(该提交之后的提交都会被移除),同时重置暂存区,但工作区不变 $ git reset # 等价于 $ git reset --mixed... # 将当前分支的指针指向为指定 commit(该提交之后的提交都会被移除),但保持暂存区和工作区不变 $ git reset --soft # 将当前分支的指针指向为指定...「Git 通过子模块来解决这个问题,允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。」...因为在少数情况下即使预发布通过了,都不能保证正式生产环境可以100%不出问题;预发布环境的配置,数据库等都是跟线上一样;有些公司的预发布环境数据库是连接线上环境,有些公司预发布环境是单独的数据库;如果不设预发布环境
要将暂存区重置为与最近的提交匹配,而不丢失工作区的任何数据,请使用以下命令: git reset 撤销所有当前的更改并将工作区重置为与最近的提交匹配,请使用以下命令: git reset --hard...标签在本质上是一个引用,类似于分支名称,但标签通常是静态的,因为它们指向单个提交,而分支名称是动态的,因为它们跟踪分支的末端,并随着新的提交添加而更新。通常情况下,标签在标记发布版本时很有用。...为当前签出的 Git 提交创建一个标记: git tag tag_name git rebase Git rebase 命令允许用户将一系列提交移动到一个新的基础提交上。...默认情况下,cherry-pick 不包含第一个提交记录,但会包含最后一个提交记录。...这为开发人员快速追踪 bug 的源头提供了一种方法,因为每次将提交历史记录分成两半,可以指数级地减少需要手动检查的提交记录数量。
在执行git fetch命令的时候,可以通过 --no-tags 参数设置不获取里程碑只获取分支及提交 $ git fetch --no-tags 或在注册远程版本库的时候,使用--no-tags 参数避免将远程版本库的里程碑引入本地版本库...重置–reset or reflog or revert .git/refs/heads/ 中记录了其分支中对应的最新提交ID,下述为master分支最新提交ID: $ cat .git.../refs/heads/master e695606fc5e31b2ff9038a48a3d363f4c21a3d86 reset 重置命令git reset 的一个用途就是修改引用(如master)的游标...因此重置一般用于重置暂存区(除非使用--hard参数,否则不重置工作区),而检出命令主要是覆盖工作区(如果不省略,也会替换暂存区中相应的文件)。...2.2 删除本地分支 $ git branch -d/-D develop 删除远程分支 冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。
新提交是 HEAD 的直接子代,通常是当前分支的尖端,并且分支被更新为指向它(除非没有分支与工作树相关联,在这种情况下 HEAD 是“分离的”,如 git-checkout [1] )。...git reset [] [] 此表单将当前分支头重置为,并可能根据更新索引(将其重置为的树)和工作树。...(8) 首先,将历史记录重置为一次提交,以便我们删除原始提交,但保留工作树中的所有更改。...讨论 下表显示了运行时会发生什么: git reset --option target 根据文件的状态,使用不同的重置选项将HEAD重置为另一个提交(target)。...git pull 使用此命令来合并来自另一个存储库的更改,并且可以手动使用此命令将更改从一个分支合并到另一个分支。
如何在 Git 中删除分支 要删除本地分支: git checkout -d<local_branch> 使用 -D 参数强制执行删除。...您将在每次提交的左侧看到“pick”一词。保留顶部的一个,并将所有其他的替换为“s”以进行挤压,保存并关闭文件。 然后打开另一个交互式窗口,您可以在其中将提交消息更新为一个新的提交消息。...如果不密切管理分支,可能会遇到冲突。...重新基础将一个分支的更改重新写入另一个分支,而不创建新的提交。...rebase master 将指定分支合并到主分支 git checkout master git merge my_feature Git Stash 有时您在一个分支上进行更改,并希望切换到另一个分支
git show [commit] 非常用,但必须掌握的命令 # 以当前所在分支代码为基础,创建一个新分支 git checkout -b feature_1_3_1 # 将当前分支推送到远程 git...push --set-upstream origin feature_1_3_1 # 删除本地分支 git branch -d feature_1_3_0 # 强制删除本地分支 git branch...-D feature_1_3_0 # 删除远程分支 git push origin --delete feature_1_3_0 # 更新远程分支信息 # 常用语远程已经删除分支,但本地依然缓存了远程分支的情况...git fetch origin --prune # 合并某分支到当前分支 git merge feature_1_3_0 # 重置到最近一次提交的代码 # 不会删除你新添加的文件 git reset...此方法常用于在windows系统上,操作别人的电脑时别人使用了ssh但你又不知道如何开启他的配置,但此时又必须提交代码的情况下,临时切换为自己的用户名密码的方法。
如何在Git里撤销(几乎)任何操作 一、撤销一个已经公开的改变 场景:已经执行了gitpush,将修改发送到了github,需要撤销某一个commit。...四、重置本地的修改 场景:在本地提交了一些东西(还没有push),希望撤销前面的三次提交。...希望提交到另一个分支(feature)。...,这是创建新分支并马上check out的流行捷径,但是如果不希望马上切换分支。...一旦有个文件被加入提交,git就会持续关注该文件的改变。如果你希望从git的追踪对象中删除那个本应忽略的文件,git rm –-cached会从追踪对象中删除它,但让文件在磁盘上保持原封不动。
领取专属 10元无门槛券
手把手带您无忧上云