GIT提交、回滚等基本操作记录

本文介绍了Windows和Linux换行符差异导致的Git警告解决方法,详细讲解了添加、修改和删除远程仓库,以及Git的基本操作如初始化、提交、分支管理和版本回滚,包括soft、mixed、hard和keep模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、add文件时warning: LF will be replaced by CRLF in .idea/workspace.xml.

在这里插入图片描述

原因:windows中的换行符为 CRLF, 而在Linux下的换行符为LF,所以在执行add . 时会出现以下提示

解决:git config core.autocrlf false

在这里插入图片描述
2、GIT命令:

查看当前远程地址

git remote -v

添加远程仓库地址:

git remote add origin 远程仓库地址

修改远程地址:

git remote set-url origin 远程仓库地址

删除远程仓库:

$ git remote remove origin

在命令行上创建一个新的存储库

git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:zianji/springcloud.git
git push -u origin main

从命令行推送现有存储库

git remote add origin git@github.com:zianji/springcloud.git
git branch -M main
git push -u origin main

GIT Remotes有多个仓库地址Start====

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
操作过程中不晓得啥操作多出来一个git,删除第二个多于的springcloud

End================

Git pull或push都会失败,找不到远程分支。Start====

在这里插入图片描述

根据上述最后一行提示,设置远程分支。

git branch --set-upstream-to=origin/main main(远程仓库名称)

仍然失败,黄色提示内容:远程已经存在的分支,需要运行“gitfetch”来检索它。在这里插入图片描述
git fetch在拉取代码过程中,git fetch会首先检查本地仓库和远程仓库的差异,检查哪些不存在于本地仓库,然后将这些变动的提交拉取到本地仓库,而不是本地工作目录,它不会自行将这些新数据合并到当前工作目录中,我们需要继续执行git merge才会把这些变动合并到当前工作目录。git pull直接获取远程的最新提交,直接拉取并合并到本地工作目录。

End===========================

3、回滚

git的版本回滚其实就是回滚不同的分区。git在本地有三大分区:工作区、暂存区、版本库。通过push之后推到远程仓库。

工作区:正在编写,还未add的部分。

暂存区:add后的代码。

版本库:commit后的代码

未add、commit的部分:工作区

准备环境,先新建testGitUse类。

在这里插入图片描述

进行add及commit操作:

commit之后:版本库
gituse提交因未push到远程仓库,所以显示的为本地master,同步到远端的提交分支会显示为origin/master.
在这里插入图片描述

在这里插入图片描述
3.1、commit之后未push之前回滚:

在这里插入图片描述

在这里插入图片描述

注意:undo commit只能从最后一次commit开始回滚,undo commit后会要求选择一个变更列表来存放回滚后的内容,可以自己新建一个,比如此处的gituse,也可以在下拉框里选择一个已经存在的,如果是自己新建的变更列表,勾选了set active选项,后续的变动也会存放到该变更列表中。

回滚后:

gituse提交操作没有了。

在这里插入图片描述
回滚后多了一个更新列表,再次操作如提交时选择此列表:
在这里插入图片描述

在这里插入图片描述

已push,进行回滚

即将本地的代码版本回滚到指定版本

git中当前操作记录:

在这里插入图片描述

在这里插入图片描述
回滚方式一:

选中想要回滚的版本:
在这里插入图片描述

方式二:录入版本
a5d301cb

在这里插入图片描述
回滚后继续操作将本地的版本用 git push -f 强推到远端。远端仓库即会回滚。

在这里插入图片描述
回滚后效果:
在这里插入图片描述
在这里插入图片描述
reset有几种模式:

soft,将版本回滚,工作区不动,暂存区=原来的+回滚后和回滚前的版本差异。
mixed,将版本回滚,回滚到了所有 git add 和 git commit 的命令执行之前。暂存区变为空,变更全部到了工作区。
hard,将版本回滚,将所有工作区和暂存区的文件修改全部清空,是真正的覆盖,不能找回了。
keep,将版本回滚,将所有commit的内容丢弃掉,未commit的内容保留。

合并代码最好不要使用rebase,它会改变基底,篡改提交记录,出问题不好追溯。建议使用merge,保存完成提交记录!!!

### 使用 Git 回滚提交的更改 #### 使用 `git revert` 回滚提交 当需要撤销某次特定的提交并保持历史记录时,推荐使用 `git revert` 命令。此命令不会改变现有的提交历史,而是通过创建新的提交来回退指定的改动。 对于单个提交回滚操作如下: ```bash git revert <commit> ``` 这将会创建一个新的提交,其内容正好抵消 `<commit>` 所做的变更[^2]。 若要一次性回退多个连续的提交,则可采用范围形式: ```bash git revert --no-commit <first-bad-commit>..<last-good-commit> ``` 上述指令会依次应用一系列反向补丁到工作树中,但并不会立即提交这些变化;直到所有必要的更正都完成之后再统一提交一次即可[^1]。 #### 使用 `git reset` 回滚提交 相比之下,`git reset` 提供了更为灵活但也更加危险的方式来进行版本控制中的时间旅行。它允许用户移动分支指针至不同的位置,并可以选择性地影响索引(即暂存区域)以及工作目录的状态。 软重置仅改变了 HEAD 的指向,既不影响索引也不干扰工作副本里的文件状态: ```bash git reset --soft <commit> ``` 混合型重置除了调整 HEAD 外还会更新索引,但是不涉及实际文件的变化: ```bash git reset --mixed <commit> ``` 硬重置是最激进的一种方式,不仅会使 HEAD 和索引同步到目标提交处,而且连同工作区内的任何未跟踪项也会被强行恢复成那时的样子——这意味着在此之前所做的全部局部变动都会消失不见! ```bash git reset --hard <commit> ``` 鉴于 `git reset` 可能带来的风险,在决定采取这种手段之前务必谨慎评估潜在后果,并优先尝试相对安全无害的方法比如 `git revert` 来解决问题[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值