git学习笔记-发现问题如何恢复

本文详细介绍了在Git中遇到问题时如何通过reset和revert进行版本回退,包括reset的不同类型、revert的操作流程,以及如何在不同情况下放弃本地修改。
1.概要

git总出各种问题,不清楚原因。所以准备了解的跟深入些。本来的理解是这样的:

下载我就pull

修改完就

commit然后push

怎么会有问题的,结果还总有。

既然问题无法避免,那就提高解决问题和恢复问题的能力。如果问题能够恢复就没有什么可担心的。那么恢复问题的方法就那些呢?有如下两种,一种是回退,回退到某一个正确的版本,一种是对某一个错误的版本重新处理。

二 常用的处理流程

1.reset 回退

1.1 基本步骤

1.1.1 git reset --hard

1.1.2 git push -f 因为你push的版本较低,需要强制提交

1.2 回退的基本原理:git reset --hard命令会将HEAD指针、当前分支指针和索引区都移动到指定的commit ID,从而重置工作区为该版本。

1.3 重置的几种类型

1.3.1 --hard 最危险、但也最简单有效

--hard是最直接,最危险,同时也是使用最频繁的选项。当我们传入 --hard 执行 git reset 时,Commit History会被更新到指定的commit,同时暂存索引和工作目录也会被重置到对应commit的状态。这意味着,指定你工作目录和暂存索引里的内容会丢失。

1.3.2 --mixed 
--mixed 是默认的选项。这种模式下,引用指针会更新。暂存索引被重置到指定commit的状态,任何暂存索引未提交的变更都会被移动到工作目录中。

1.3.3 --soft
我们传递--soft 选项时,引用指针被更新, 暂存索引和工作目录保持不变。

2. revert 重做某一个版本

2.1 基本步骤如下

2.1.1 git revert -n 版本号

2.2.2 git commit -m 版本名

2.2.3 git push

这个步骤多半是会有问题的,因为如果再去掉这个版本的过程中,往往会有合并,如果有合并的话,这里就需要你处理冲突,没有冲突的情况特别扫,除非这个版本中你做的就是添加或者删除文件的事。

基本上可以把这两种情况教主 revert commit 和revert merge commit ,如果有merge是需要处理冲突的。

2.2  两种不桶的从做方法

git revert --abort  合并后如果有冲突,恢复原状,就像什么都没发生过一样

git revert --quit 和并后,保留处理的结果,如果有冲突,需要手动合并。

3.放弃本次修改

3.1 没有提交的情况

3.1.1 未git add

 git checkout – filepathname 

 git checkout .//全部文件

3.1.2 已经git add

git reset HEAD filepathname

git reset HEAD .

3.1.3 已经 git commit

git reset --hard commitid //任意版本

git reset --hard HEAD^ //上一版

3.1.4 对于本地的项目中修改不做任何理会,就需要用到Git pull的强制覆盖

git fetch --all
git reset --hard origin/master
git pull

4 其他命令

4.1 git status 查看工作区文件的状态

4.2 git-ls-files  -    显示有关索引和工作树中文件的信息

     -s --stage在输出中显示暂存内容的模式位,对象名称和阶段编号

4.3 git rm --cached 文件名 删除缓冲区的文件

      git stash 删除.git 文件中index文件夹中的全部文件

4 参考连接

Git回退版本的几种操作_git回滚到指定版本-优快云博客

Git恢复之前版本的两种方法reset、revert(图文详解)_git reset 回退以前某个版本_chentiebo的博客-优快云博客

git如何放弃本地修改操作_git放弃本地修改_北漂燕郊杨哥的博客-优快云博客

git: 放弃所有本地修改_git放弃本地修改-优快云博客

Git杂谈—— 万字长文详解git reset - 知乎

https://www.cnblogs.com/ahzxy2018/p/14521922.html

<think>好的,用户想要寻找关于Git学习资料,特别是搭建相关的教程或指南。首先,我需要回顾用户提供的引用内容。 引用[1]提到了Git教程,推荐了Gitee和GitLab,适合国内用户使用,因为GitHub可能有访问速度问题。用户可能需要基础教程和替代平台的信息。引用[2]详细说明了如何在本地搭建Git服务器,包括初始化仓库和客户端上传步骤。用户对搭建自己的Git服务器感兴趣,比如公司内部使用GitLab的情况。 接下来,我需要整理这些信息,分步骤回答。首先,推荐基础学习资料,包括官方文档和中文教程。然后,介绍搭建私有仓库的教程,包括GitLab和Gitea。用户可能还需要了解自建服务器的步骤,比如使用git init --bare创建裸仓库,以及客户端如何连接。此外,可能还需要推荐书籍和视频教程,帮助用户深入学习。 用户的问题可能还涉及如何选择适合自己团队的解决方案,比如GitLab适合企业,而Gitea适合轻量级需求。需要解释不同工具的优缺点。另外,基础操作和进阶资源也需要覆盖,确保用户从入门到进阶都有资料参考。 检查是否有遗漏点,比如权限管理、分支策略等高级主题,是否需要提及?根据引用内容,用户主要关注搭建教程,但可能也需要一些进阶资源。因此,在推荐资料时,应包括基础和进阶内容,满足不同层次的需求。 最后,生成相关问题,帮助用户深入探索Git的搭建和使用。例如,如何选择自建Git服务,或者Git仓库的权限管理方法。这些问题能引导用户进一步学习,解决实际操作中可能遇到的问题。</think>以下是关于Git学习资料及搭建教程的整理和推荐,结合引用内容和实际需求: --- ### 一、Git基础学习资料 1. **官方文档** Git官方提供完整的英文文档,涵盖所有基础命令和原理:[Git Book](https://git-scm.com/book/en/v2) *适合系统性学习,但需要一定英语基础。* 2. **中文快速入门教程** - 廖雪峰Git教程:[Git教程](https://www.liaoxuefeng.com/wiki/896043488029600) *从安装到分支管理,内容通俗易懂,适合新手。* - 菜鸟教程Git篇:[Git简明指南](https://www.runoob.com/git/git-tutorial.html) *提供命令速查和基础操作演示。* --- ### 二、Git私有仓库搭建教程 #### 1. **自建Git服务器** - **引用[2]的方法**: 在服务器上执行 `sudo git init --bare sample.git` 创建裸仓库,客户端通过SSH或HTTP协议连接上传代码[^2]。 *适用于小型团队或个人项目,无需复杂配置。* - **详细步骤**: ```bash # 服务器端 mkdir /opt/git && cd /opt/git sudo git init --bare myproject.git chown -R git:git myproject.git # 设置权限 # 客户端 git remote add origin user@server:/opt/git/myproject.git git push origin master ``` #### 2. **企业级解决方案** - **GitLab搭建** - 官方文档:[GitLab Omnibus安装指南](https://docs.gitlab.com/ee/install/) *提供Docker、Linux等多种安装方式,适合企业级代码管理。* - 国内优化方案: *替换Gem源为阿里云镜像以加速安装,解决依赖问题。* - **轻量级替代:Gitea** - 官网教程:[Gitea快速部署](https://docs.gitea.io/en-us/) *单二进制文件部署,资源占用低,适合中小团队[^1]。* #### 3. **国内代码托管平台** - **Gitee(码云)** - 官方教程:[Gitee帮助中心](https://gitee.com/help) *提供Git基础操作、仓库管理及CI/CD集成,访问速度快。* --- ### 三、进阶学习资源 1. **分支策略与协作** - 《Pro Git》第5章:[分布式Git工作流](https://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows) *深入讲解Git Flow、GitHub Flow等协作模型。* 2. **权限管理** - GitLab权限配置:[Project Members权限说明](https://docs.gitlab.com/ee/user/permissions.html) *细化开发者、维护者角色权限,保障代码安全。* 3. **书籍推荐** -Git权威指南》:全面覆盖Git底层原理和高级技巧。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值