2023-08-29 git命令学习
永久删除本地所有已暂存和未暂存的修改(git add 以及没git add的文件 )
git reset --hard HEAD
此命令会将工作目录和暂存区重置为最近一次提交的状态,被删除的文件为永久删除,无法找回!!请三思后再使用。
如果你不想丢弃所有未提交的文件,而仅仅是想重置暂存区,则使用git reset即可,即不用在带上命令,默认执行默认git reset --mixed HEAD
如果执行此命令后再切换指定分支提示你:
error: The following untracked working tree files would be overwritten by checkout:
...
Please move or remove them before you switch branches.
错误:以下未跟踪的工作树文件将被签出覆盖:
...
请在切换分支之前移动或删除它们。
那么你只能找到这些文件,把他们删了或者移动到某某地方,这时候使用git命令可不太好使
=========================================================== 如何回退提交 start==============================================================
1.查看提交历史,找到你想撤销的那个提交的哈希值(如 afsase1)
git log --oneline
2.撤销指定的提交(Git会自动生成一个新的“撤销提交”)
git revert <commit-hash>
例:git revert afsase1
回车后终端会自动进入vim编辑器里面让你填写提交信息,
如何完成编辑并继续
a. 保存并退出(保留默认信息)
-
按键盘上的
Esc键(确保退出编辑模式) -
输入
:wq然后按Enter-
w= 保存 -
q= 退出
-
b. 或者修改信息后保存
-
按
Esc键 -
按
i进入编辑模式 -
修改第一行的文字(如果不满意默认的)
-
按
Esc退出编辑模式 -
输入
:wq保存退出
如果不小心进入了这个界面想放弃操作
如果想取消这次 revert:
-
按
Esc键 -
输入
:q!然后按Enter-
q!= 强制退出不保存
-
然后你可以重新执行或放弃 revert 操作。
3.强制推送到远程,覆盖掉远程的错误历史
git push origin 你的分支名
=========================================================== 如何回退提交 end===============================================================
把a文件恢复成远程仓库的最新提交:
1. 只获取远程信息,不会修改任何本地文件
git fetch origin
2. 查看远程和本地的差异(可选)
git diff origin/main -- src/components/ImageChunkViewer.vue
3. 确认后,才用 checkout 覆盖本地文件
git checkout origin/main -- src/components/ImageChunkViewer.vue
初始化git:git init
查看当前仓库状态:git status
只查看本地分支名称:git branch
只查看远程分支名称:git branch -r
查看本地所有分支信息主要有2个:
git branch -v
git branch -vv
这两个命令都能用,主要区别在于显示信息的详细程度,-vv能显示更多与远程仓库的关联信息,下面是示例:

同时查看本地和远程分支名称:git branch -a
(新建分支后,使用git branch或者git checkout为何查看/切换不了新建分支?==》拉取最新分支代码即可获取分支信息)
切换分支(例:test):git checkout test
创建新分支并切换到该新分支:git checkout -b <new branch name> [<existing branch name>]
例:git checkout -b tt 创建新分支tt并切换到tt分支,注意,如果没有指定[<existing branch name>],
即没有指定已存在的分支,那就会基于当前分支创建新分支!如上,便是基于当前分支创建的tt分支。
注意🔺:切换多个分支时,git尝试把本地文件和远程文件进行合并可能会出现合并冲突,这时候如果使用git stash无法放弃更改,还是提示你需要合并才能进行下一步操作,那么有两个方案:
方案一(操作稳妥,推荐使用):
1.获取远程仓库最新修改,此操作不会直接把远程仓库的文件覆盖本地文件
git fetch origin
2.将本地分支重置为远程仓库的最新状态,覆盖本地所有更改
git reset --hard origin/sit
方案二(不推荐,因为我执行了下面两行代码,还是提示我要解决冲突(也许是我不会用),请使用上面的方法):
1.丢弃所有未提交的本地更改,请确保你不再需要这些更改
git reset --hard
2.危险操作,会强制覆盖本地文件,可能会导致数据丢失,谨慎使用!
git pull --force
拉取代码:git pull
如果拉不到代码(比如在master分支删掉了index.html文件,切换到dev分支时却拉不到index.html文件的情况):
git fetch --all && git reset --hard origin/master && git pull
该命令作用是拉取远程仓库强制覆盖本地仓库👆
另外你还可以用下面方法来强制刷新本地缓存
git fetch origin
.表示添加当前目录下的所有文件到暂存区
git add readme.md 表示添加一个叫readme.md的文件,后面可以跟多个文件,即可上传多个文件
如果不小心提交多余的文件了该如何删除?请阅 https://chuna2.787528.xyz/iuniko/p/19723220
将暂存区内容提交到本地仓库:git commit
git commit -m [message]
message为备注信息
将暂存区内容提交到远程仓库:git push
查看提交的历史记录:git log
查看提交历史中是否存在某文件,请阅 https://chuna2.787528.xyz/iuniko/p/19758543
查看标签:git tag(默认列出所有标签)
git tag -l
注意:如果你想拉取远程标签,你应该使用 git fetch --tag 命令
git fetch --tag

然后再查看所有标签 git tag -l

切换标签:git checkout 2.1.1.2
删除标签:git branch -d 2.1.1.2
强制删除标签:git branch -D 2.1.1.2
删除多个:git branch -D dev_0102 dev_1211
如果有绑定到什么分支,该强制删除可能会导致报错,git不会让你删除的
删除本地分支:git branch -d 分支名
删除本地分支:git push origin --delete 分支名
注意:删除本地分支时需要切换到其他分支才能删除目标分支,即目标分支不能是当前分支
删除后可使用git branch验证分支是否被删除,git branch -r则是查看远程分支列表
放弃本地的修改:git stash
恢复本地文件到最新提交的状态:git restore src/views/goods/ReleaseGood.vue
比较当前分支与另一个分支的不同,比如查看dev分支与main的不同
git diff --name-only main...dev
合并代码
如果你要把你的分支dev合并到master,你需要切换到master,然后在终端执行合并:
// 注意,合并前先把你的需要合并的代码先提交到dev
git checkout master 切换到master
git pull 先拉取master最新代码,在团队开发时这是必须的操作
git merge dev 合并操作:把指定分支dev合并到当前分支master
git push 提交合并,如果你不提交,那么远程master就不会保存你的代码,git merge只是在本地合并
====== 2025-08-27 今天想要合并一个已有内容修改的分支,发现执行合并命令不生效,老是提示:Already up to date 脑壳疼。。========
当你合并了代码,又不想要了,如何取消合并?(未提交)
1.先查询提交日志
git log --graph --decorate --oneline
找到你需要撤回的日志
2.执行撤回
git reset --hard a5a5b81 // 比如a5a5b81就是你要撤回的日志
当你合并了代码,又不想要了,如何取消合并?(已提交合并代码)
1.查询提交日志
git log
找到你需要撤回的日志
比如:

复制 commit 后面的长长的编码
2.使用git revert创建一个新请求来撤销合并
git revert -m 1 长长的编码
3.提交新请求
git push
注意:如果有冲突需要先解决冲突然后再提交。
把指定文件回退到指定版本
比如你有一个文件提交了多次,但想要回退该版本到指定的版本,可以使用以下命令
git restore --source=版本编码 要回退的文件路径
例如:
git restore --source=609rdbf8 src/views/index.vue
而这个版本编码你可以通过git log查询
注意这是git 2.40版本以上的用法
最后附上git的官网下载地址:https://git-scm.com/downloads
更多学习资料请阅菜鸟教程:https://www.runoob.com/git/git-basic-operations.html

浙公网安备 33010602011771号