2023-08-29 git命令学习【长期更新】
永久删除本地所有已暂存和未暂存的修改————适用于切换了多个分支且使用了git stash去暂存修改时发生的需要合并才能切换分支的场景
git reset --hard HEAD
此命令会将工作目录和暂存区重置为最近一次提交的状态,被删除的文件为永久删除,无法找回!!请三思后再使用。
初始化git:git init
查看当前仓库状态:git status
只查看本地分支名称:git branch
只查看远程分支名称:git branch -r
只查看本地所有分支信息:git branch -v
同时查看本地和远程分支名称: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的文件,后面可以跟多个文件,即可上传多个文件
将暂存区内容提交到本地仓库:git commit
git commit -m [message]
message为备注信息
将暂存区内容提交到远程仓库:git push
查看提交的历史记录:git log
查看标签:git tag
切换标签: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合并到master,你需要切换到master,然后在终端执行合并:
// 注意,合并前先把你的需要合并的代码先提交到dev
git checkout master 切换到master
git pull 先拉取master最新代码,在团队开发时这是必须的操作
git merge dev 合并操作:把指定分支dev合并到当前分支master
git push 提交合并,如果你不提交,那么远程master就不会保存你的代码,git merge只是在本地合并
当你合并了代码,又不想要了,如何取消合并?(未提交)
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧