当前位置: 首页 > news >正文

【常用的git命令】

(一)操作分支

# 1、操作本地分支
# 基于 master 分支新建一个名为 dev 的分支
git checkout -b dev
git switch -c dev
# 查看当前所在的分支,不用命令就可以看到当前在哪一个分支上
git branch
# 查看每个分支跟踪的远程分支
git branch -vv
# 删除某个分支
git branch -d dev_srq
# 分支改名
git branch -m <old_branch_name> <new_branch_name>
# 切换分支
git checkout xxx
git switch xxx
# 2、本地分支与远程origin之间的操作
# 显示与当前分支关联的远程分支信息
git remote show origin
# 更新远程信息
git switch xxx
git pull origin xxx:xxx# 3、本地分支与远程backend之间的操作# 4、修改分支名字
git branch -m dev dev_rename
# 将当前分支与指定仓库的制定分支建立关联
git branch --set-upstream-to=ssh://git@xxx.git bbbbbbb

(二)pull拉取

# 从远程仓库origin上更新特定的分支
git pull origin br_xxx
# 使用远程分支更新本地分支
git pull origin br_xxx:br_xxx

(三)push推送

git push backend dev
# 删除远程仓库backend里的br_dev分支
git push backend --delete br_dev

(四)版本回退

git reset HEAD^ --soft
##  --soft 选项表示撤销更改后,保留更改的代码。如果不加这个选项,那么撤销更改后,更改的代码会被删除。
# 将当前修改的文件都重置为没有修改的状态,谨慎使用
git restore <fileName>
git restore .
# 回退到指定版本
git reset --hard a97ad6b577cc7172a78d6bf0299c5e53d0f4de68
git reset --soft a97ad6b577cc7172a78d6bf0299c5e53d0f4de68
# 丢弃当前的所有更改
git reset HEAD --hard 
# 从工作目录中删除某些文件,并且不想将这些更改提交到git。-f选项强制删除未跟踪的文件
git clean -f test/public/base/DatabaseTest.cpp

(五)仓库

# 添加新的远程仓库
git remote add backend ssh://git@aaa.com:xxx/backend.git
# 查看所有已添加的远程仓库
git remote -v
# 删除远程仓库
git remote rm backend

(六)配置

# 设置用户名、密码
git config --global user.name sstone
git config --global user.email aaa@bbb.com
# 查看用户名、密码
git config user.name
git config user.email

(七)操作文件

# 1.删除本地文件并从Git仓库中删除
git rm <文件路径>
# 2.从Git仓库中删除文件,但保留本地文件
git rm --cached .gitignore
# 3.删除add到仓库的所有文件
# 4.恢复特定文件或整个工作目录到最近一次提交的状态
git checkout -- <file>
git checkout .
# Git 2.23.0 版本引入的一个新命令
git restore --staged xxx.cpp # 将暂存区的文件恢复到未暂存状态,同时保留工作目录中的修改
git restore xxx.cpp # 撤销工作目录中的对该文件的修改

(八)暂存当前更改

# 将当前更改保存到当前分支
git stash
# 查看当前的的stash列表
$ git stash list
stash@{0}: WIP on br_aaa: b0f70bc59 merge debug into master
stash@{1}: WIP on br_bbb: 4a478925a merge maindtsmater into master
stash@{2}: WIP on br_ccc: 616d077e7 merge DISC36134 into master
# 取出指定的stash,并出栈
git stash pop stash@{1}
git stash apply stash@{1}
# 删除特定的stash
git stash drop stash@{0}
# 删除所有的stash
git stash clear
# 检查stash内容
git stash show stash@{n}

(九)合并最近的几个提交

# 1)打开交互式rebase,列出最新的4个提交
git rebase -i HEAD~4
# 2)修改提交方式,将第一个提交前的动词保留为 pick,将接下来的三个提交前的动词改为 squash,
pick abcdef1 提交信息1
squash 1234567 提交信息2
squash 789abcd 提交信息3
squash ef01234 提交信息4
# 3)保存退出
# 4)修改提交信息,保存退出
# 场景:将src分支上的关于7777的几个commit合入到目标分支dest上
# 已知,几次commit的值是2fa91、52def、acdb7
git switch dest
git cherry-pick 2fa91 52def acdb7 # 处理冲突
git rebase -i HEAD~3
git push

Cherry-pick时冲突了

首先明确是手动处理冲突
master分支里合入的commit id:32045b9bf33603d3f6d7b67c52907c7de9262490
欲将其合入到br_dev分支
参考处理链接:https://blog.csdn.net/weixin_42623551/article/details/123372630
主要逻辑是:
查看提交的commit id
在分支master上打开git bash,然后git checkout br_dev,然后git cherry-pick 32045,此时会提示成功或者失败。可以看到有冲突的文件
解决冲突,使用vscode打开代码,找到冲突的代码,手动修改。
使用git add .添加,之后git cherry-pick --continue,提示成功即可。

http://www.dtcms.com/a/422704.html

相关文章:

  • SNK施努卡汽车一体式天幕生产线
  • Celery时区设置问题源码探究
  • 音元分析流程
  • 懂的建设网站上海做网站优化
  • OpenLayers的OGC服务 -- 章节一:WMS服务详解
  • [信号与系统个人笔记]第三章 连续时间信号与系统的频域分析 Part 4
  • 多渠道打包gradle配置
  • 集中式架构还是分布式架构?SCADA架构选型的新趋势
  • 第八章 财务报表 2利润表(2025版)
  • 在Trae上使用Bright Data MCP采集数据,实时获取IPhone17价格信息
  • 番禺网站推广湖南网站建设有限公司
  • 刷题 | 牛客 - 前端面试手撕题 - 中等 - 1-2/20 知识点解答
  • 建立自动化SSL证书更新机制与多层监控体系
  • 岚图汽车 x Apache Doris : 海量车联网数据实时分析实践
  • chrome-devtools-mcp windows 环境安装
  • IOT_通讯控制器(IO模块)
  • 分布式计数器系统完整解决方案
  • 音频类AI工具扩展
  • PyCharm 开发 Python 项目后,将其打包并部署到 Nginx 服务器
  • 在 Trae 国际版中添加 Chrome Dev MCP Server(Windows 实战指南)
  • 个人商城网站备案互联网域名是什么意思
  • 太原微信网站商城网站建设定制
  • VR 太阳光参数与快速渲染
  • 垃圾分类魔法互动墙-垃圾分类展厅设备-VR垃圾分类软件
  • 九、Proteus817实现51单片机DHT22温湿度读取
  • 家庭录像损坏了无法播放?视频修复让回忆重现
  • 【StarRocks】-- 深入理解 StarRocks 窗口函数 LAG()
  • [C++项目组件]Elasticsearch简单介绍
  • 网站建设公司的服务15年做哪些网站致富
  • 学做软件的网站有哪些怎么制作网站后台