git 常用操作
git stash工作区暂存代码
git pull 拉代码的时候,或者切换分支的时候,防止冲突和不便,,会用到git stash,将工作区内容暂存起来。
比如:为了fix 一个bug, 先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。
怎么办:
1、git stash
备份当前工作区的内容,保存到git 栈中,从最近的一次commit中读取相关内容
2、git pull 或者做其他的工作
3、git stash pop
从git栈中获取到最近一次stash进去的内容,恢复工作区的内容。。获取之后,会删除栈中对应的stash。。
由于可能会stash多次,git使用栈管理,我们可以使用git stash list查看所有的stash
git stash list
显示git栈中的所有工作区内容的备份,
比如使用git stash apply stash@{1},就可以把版本号为stash@{1}的备份取出,不会删除对应的stash。。0为最新版本
git stash clear
清空git栈
还可以git reset --hard放弃本地修改,然后就可以git pull了。。
git 放弃本地修改,强制拉取更新
开发项目时,对于本地已修改但又不想保留的代码(比如你代码改崩了),可以用如下两种方法来重置代码:
1、restore 重置
如果你修改了代码,但是并未执行 git add 操作,可直接执行:
git restore .
. 表示所有文件,如果想重置个别文件,指定文件路径即可
git restore <文件>...
注意⚠️:如果你已经执行了 git add 操作,此时代码已保存至暂存区,需要先取消暂存区变更:
git restore --staged .
或者
git reset .
然后,再执行 git pull 拉取远程代码同步即可。
2、reset 回退
reset 比较暴力,相当于 可适用于 代码在工作区、暂存区、仓库区等任何场景,重置后不可恢复🙅♂️,对于新手有一定的安全隐患。
git fetch --all
git reset --hard origin/master
git pull // 这一步为了同步远程代码,不需要的话可不执行
git fetch 指令是下载远程仓库最新内容,不做合并。
git reset 指令把HEAD指向master最新版本。
reset --hard:重置后不保留暂存区和工作区
reset --soft:保留工作区,并把重置 HEAD 所带来的新的差异放进暂存区(此时代码的变更状态相当于执行完 git add命令)
reset --mixed:reset的默认参数,保留工作目录,并重置暂存区(此时代码的变更状态相当于执行 git add命令之前)
3、stash 暂存(推荐)
我比较喜欢的方法,是用stash,暂存代码再同步。
首先,将所有代码添加至暂存区:
git add .
然后,将代码临时保存:
git stash
此时代码会重置到修改前的状态,可以同步远程仓库区,完事儿。
git pull
同步后,如果还想继续修改原来的代码,可将临时代码恢复至工作区:
git stash pop
注意⚠️,stash 用法有很多,比如save,push,pop,clear等,需要使用可以查阅stash 命令
原文链接:https://blog.csdn.net/haoaiqian/article/details/78284337
git 将分支替换为master
git branch -m master old-master
git branch -m wait_change_master master
git push -f origin master
上述操作就是将本地的分支重命名,然后将重命名的分支变成master ,然后将master强制推送到github
强制同步远程tags
在用Git去更新代码的时候有遇到下面的问题:
1 2 3 4 5 |
> git pull --tags origin master From https://github.com/MY/REPO * branch master -> FETCH_HEAD ! [rejected] latest -> latest (would clobber existing tag) 9428765..935da94 master -> origin/master |
原因是我删了原有的一个tag,然后重新创建了一个相同名字的。
解决方案:
1 |
git fetch --tags -f |
强制刷新一下本地的tags
https://stackoverflow.com/questions/58031165/how-to-get-rid-of-would-clobber-existing-tag
1. 本地删除
git tag -d v0.1.2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?