Git 常用操作与注意事项全攻略

1. 基本配置

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git config --list   # 查看当前配置

建议全局配置用户名和邮箱,否则提交记录可能不规范

2.仓库操作

初始化本地仓库
git init

只在新建项目时使用,已有仓库不用再 init。

克隆远程仓库
git clone 仓库地址
# 例:git clone git@codeup.aliyun.com:d1/dxInside/MU86.git

克隆后会自动进入项目目录,注意切换到正确目录再操作

3.分支操作

查看分支
git branch           # 查看本地分支
git branch -r        # 查看远程分支
git branch -a        # 查看所有分支
新建分支
git branch 分支名

新建分支不会自动切换,需手动切换。

切换分支
git checkout 分支名
# 或
git switch 分支名

切换前请确保当前更改已提交或已暂存,否则可能导致冲突。

新建并切换分支
git checkout -b 分支名
# 或
git switch -c 分支名
删除分支
git branch -d 分支名         # 删除本地分支(已合并)
git branch -D 分支名         # 强制删除本地分支(未合并)
git push origin --delete 分支名  # 删除远程分支

删除分支前请确认分支内容已备份或合并。

4. 代码提交

查看状态
git status
添加文件到暂存区
git add 文件名
git add .           # 添加所有更改

git add . 会添加所有更改,包括删除和新建,操作前请确认。

提交更改
git commit -m "提交说明"

提交说明建议简明扼要,便于团队协作。

5. 远程操作

查看远程仓库
git remote -v
添加远程仓库
git remote add origin 仓库地址

一个仓库可以有多个远程(如 origin、upstream),注意区分。

拉取远程代码
git pull                # 拉取当前分支对应的远程分支
git pull origin 分支名  # 拉取指定远程分支到当前分支

拉取前建议先提交本地更改,避免冲突。

推送代码到远程
git push                # 推送当前分支到远程
git push origin 分支名  # 推送当前分支到远程指定分支
git push -u origin 分支名  # 首次推送并建立关联

推送前建议先拉取远程最新代码,避免覆盖他人提交。

6. 合并与变基

合并分支
git merge 其他分支名

合并前建议先拉取最新代码,合并后如有冲突需手动解决。

变基(rebase)
git rebase 其他分支名

rebase 会重写提交历史,协作开发时慎用,避免影响他人。

7. 撤销与回退

撤销未提交的更改
git checkout -- 文件名

会丢弃文件的本地更改,谨慎操作。

撤销已暂存的更改
git reset HEAD 文件名
回退到某次提交
git log                # 查看提交历史,找到commit id
git reset --hard commit_id

–hard 会丢弃所有未提交的更改,操作前请备份重要内容。
按q键可以退出日志查看回到命令行

8. 查看日志

git log
git log --oneline
git log --graph --all --decorate

–graph 选项可以更直观地查看分支合并关系。

9. 标签(Tag)

创建标签
git tag v1.0
推送标签
git push origin v1.0
git push origin --tags   # 推送所有标签
删除标签
git tag -d v1.0
git push origin :refs/tags/v1.0

10. stash 临时保存

保存当前更改
git stash
查看 stash 列表
git stash list
恢复最近一次 stash
git stash pop

11. 常见问题与注意事项

  • 切换分支前请提交或保存当前更改,否则可能导致冲突或丢失。
  • 多人协作时,推送前务必先拉取远程最新代码,解决冲突后再推送。
  • 不要在公共分支(如 master/main)上直接开发,建议新建 feature 分支开发后合并。
  • rebase 只建议在自己的分支上用,合并到主分支前请用 merge。
  • reset、rebase、push -f 等会重写历史,操作前请三思。
  • 删除分支、回退历史等危险操作前请做好备份。

12. 其他实用命令

查看某个文件的历史
git log 文件名
查看某次提交的内容
git show commit_id
比较差异
git diff                # 工作区与暂存区差异
git diff --cached       # 暂存区与上次提交差异
git diff 分支A..分支B   # 两分支差异
修改最后一次提交说明
git commit --amend

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/89000.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/89000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32-第五节-TIM定时器-1(定时器中断)

一、定时器原理:1.介绍:对指定输入时钟进行计数,并在计数值达到设定值时触发中断。分类:基本定时器,通用定时器,高级定时器频率:72MHZ2.框图: (1)基本定时器&…

【图像处理基石】什么是色盲仿真技术?

色盲仿真概述 色盲仿真是一种将正常色彩图像转换为色盲患者感知效果的技术。人类常见的色盲类型包括: 红色盲(Protanopia):无法感知红色绿色盲(Deuteranopia):无法感知绿色蓝黄色盲(…

九、官方人格提示词汇总(中-3)

“参谋代写计划”功能输出欣赏,规则: 本部分统一使用 Gemini 2.5 Pro API。该 API 下的输出质量基本达到我的要求,已具备实用价值。严格等级均为“权衡有度(L3)”,创造力等级均为“趋势捕手(L3…

华为MateBook D 16 SE版 2024款 12代酷睿版i5集显(MCLF-XX,MCLF-16)原厂OEM预装Win11系统

适用型号:MCLF-XX,MCLF-16链接:https://pan.baidu.com/s/1OkvUqZMdCSF98YtQfWAYXw?pwdq2gh 提取码:q2gh 华为开箱状态出厂Windows11系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office办公软件、华为电脑…

Python自动化:每日销售数据可视化

这是手动执行sql分组查出的Linda奶茶店每日的销售数据,那么能否图形化展示方便对比近一个月每日的销售趋势呢。如果是做在网站里,前端可以集成echart或highchart生成柱状图或线状图。如果需要每天定时推送这些数据到邮箱或其他消息通知渠道,第一步肯定是需要先生成图片到服务…

scrapy项目开发流程

1.创建项目:scrapy startproject mySpider2.生成一个爬虫:scrapy genspider itcast itcast.cn3.提取数据:根据网站结构在spider中实现数据采集相关内容4.保存数据使用pipeline进行数据后续处理和保存1.创建项目items.py-->自己预计需要爬取…

堆排序以及其插入删除

堆排序首先介绍一下堆排序属于选择排序的一种类型。其次就是他有点依赖于顺序存储树判断其孩子以及父节点的概念,接下来复习一下。堆分为大根堆和小根堆① 若满⾜:L(i)≥L(2i)且L(i)≥L(2i1) (1 ≤ i ≤n/2 )—— ⼤根堆&#xff…

Spring Boot项目结构解析:构建高效、清晰的代码框架

在当今的软件开发领域,Spring Boot因其简洁性和强大的功能而备受青睐。它不仅简化了Spring框架的配置,还提供了一套高效的项目开发模式。本文将深入探讨Spring Boot项目结构中的关键组件,包括PO、Query、VO、Config等,旨在帮助开发…

多客户端 - 服务器结构-实操

实现2个客户端之间互相聊天 要求: 1、服务器使用 select 模型实现接受多个客户端连接,以及转发消息 2、客户端要求:使用 poll 模型解决 技能够 read 读取服务器发来的消息,又能够scanf读取键盘输入的信息 3、客户端服务器不允许开…

iOS高级开发工程师面试——Objective-C 语言特性

iOS高级开发工程师面试——Objective-C 语言特性 一、多态二、继承三、代理(Delegate)1. 代理为什么用 weak 修饰呢?block和代理的区别?四、通知(NSNotificationCenter)五、KVC (Key-value Coding)六、属性七、`@property` [ˈprɒpəti]的本质是什么?ivar 、 setter …

MMpretrain 中的 LinearClsHead 结构与优化

LinearClsHead 结构与优化 一、LinearClsHead 核心结构 在 MMPretrain 中,LinearClsHead 是一个简洁高效的分类头,其核心结构如下: class LinearClsHead(BaseModule):def __init__(self,num_classes, # 类别数量in_channels, # 输入…

Spring 学习笔记

1.Spring AOP 怎么实现的AOP 即面向切面编程,是通过代理实现的,主要分为静态代理和动态代理,静态代理就是在程序运行前就已经指定并声明了代理类和增强逻辑,运行时就已经被编译为字节码文件了,而动态代理则是在运行过程…

【CVPR2024】计算机视觉|InceptionNeXt:速度与精度齐飞的CNN架构

论文地址:http://arxiv.org/pdf/2303.16900v3 代码地址:https://github.com/sail-sg/inceptionnext 关注UP CV缝合怪,分享最计算机视觉新即插即用模块,并提供配套的论文资料与代码。 https://space.bilibili.com/473764881 摘要…

7.15 窗口函数 | 二分 | 位运算 | 字符串dp

lc3316. 字符串dpdp多开一行一列后,注意原字符串下标映射dp[n][m] ( n 是source长度, m 是pattern长度)两重循环填表for i 1-nfor j 0-m三种状态转移1.不选 dp i jdp i-1 j2.不选if tag, dp[i][j]3.if(s ip j) 选,dp i…

Spring原理揭秘--初识AOP

我们知道软件开发一直在追求高效,易维护,易扩展的特性方式。在面向过程编程到面向对象编程的历程中,程序的开发有了非常大的进步。但是oop的方式缺依然存在着一些缺点。oop的方式可以将业务进行很好的分解和封装使其模块化,但是却…

Provider模式:软件架构中的“供应商“设计哲学

文章目录Provider模式:软件架构中的“供应商“设计哲学什么是Provider模式?经典应用场景1. 配置管理Provider2. 数据访问Provider4. 消息队列ProviderProvider模式的优势1. 解耦合实际项目中的应用Provider模式的最佳实践1. 命名约定2. 接口设计原则3. 错…

LTspic下载,帮助及演示电路

1.下载 LTspice是一款强大高效的免费SPICE仿真器软件、原理图采集和波形观测器,为改善模拟电路的仿真提供增强功能和模型。其原理图捕获图形界面使您能够探测原理图并生成仿真结果,这些结果可以通过内置波形查看器进一步观察分析。 链接: …

位置编码/绝对位置编码/相对位置编码/Rope原理+公式详细推导及代码实现

文章目录1. 位置编码概述1.1 为什么需要位置编码?2. 绝对位置编码 (Absolute Position Encoding)2.1 原理2.2 数学公式2.3 代码实现2.4 代码与公式的对应关系2.5 特性与优势2.6 可学习的绝对位置编码3. 相对位置编码 (Relative Position Encoding)3.1 原理3.2 数学公…

网络安全初级第一次作业

一,docker搭建和挂载vpm 1.安装 Docker apt-get install docker.io docker-compose 2.创建文件 mkdir /etc/docker.service.d vim /etc/docker.service.d/http-proxy.conf 3.改写文件配置 [Service] Environment"HTTP_PROXYhttp://192.168.10.103:7890…

交换类排序的C语言实现

交换类排序包括冒泡排序和快速排序两种。冒泡排序基本介绍冒泡排序是通过重复比较相邻元素并交换位置实现排序。其核心思想是每一轮遍历将未排序序列中的最大(或最小)元素"浮动"到正确位置,类似气泡上升。基本过程是从序列起始位置…