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

Git常用操作(2)

一、Git 基础配置(首次使用)

# 配置用户名(与GitHub/Gitee等平台一致)
git config --global user.name "Your Name"# 配置用户邮箱(与平台注册邮箱一致)
git config --global user.email "your.email@example.com"# 查看配置信息
git config --list# 配置默认编辑器(如VS Code)
git config --global core.editor "code --wait"

二、仓库初始化与克隆

# 初始化本地仓库(在当前目录创建.git文件夹)
git init# 克隆远程仓库到本地(完整复制项目代码)
git clone <远程仓库地址>  # 例:git clone https://github.com/username/repo.git# 克隆后进入项目目录
cd <仓库名>

三、文件状态管理(核心操作)

1. 查看文件状态

# 查看工作区与暂存区状态
git status# 简洁显示状态(??未跟踪,A已暂存,M已修改)
git status -s

2. 工作区 → 暂存区(准备提交)

# 添加指定文件到暂存区
git add <文件名>  # 例:git add index.html# 添加当前目录所有文件到暂存区(不含.gitignore排除的文件)
git add .# 添加所有修改(包括删除的文件)
git add -A

3. 暂存区 → 版本库(提交修改)

# 提交暂存区文件到本地仓库,必须写提交信息
git commit -m "提交说明:做了什么修改"  # 例:git commit -m "修复登录按钮样式bug"# 跳过暂存区,直接提交工作区所有修改(仅限已跟踪文件)
git commit -am "提交说明"# 修改最近一次提交(未推送到远程时使用)
git commit --amend

四、版本历史查看与回退

# 查看提交历史(完整信息)
git log# 简洁查看历史(一行显示一条)
git log --oneline# 查看最近n次提交
git log -n 3  # 查看最近3次# 回退到指定版本(commit_id是版本号,可从log获取)
git reset --hard <commit_id>  # 例:git reset --hard a1b2c3d# 查看所有操作记录(包括已回退的版本),用于找回误删版本
git reflog

五、分支操作(多人协作核心)

# 查看所有分支(当前分支前有*)
git branch# 创建新分支
git branch <分支名>  # 例:git branch feature/login# 切换到指定分支
git checkout <分支名>  # 例:git checkout feature/login# 创建并切换到新分支(上面两条命令的简写)
git checkout -b <分支名>  # 例:git checkout -b bugfix/payment# 合并指定分支到当前分支(如合并feature分支到main)
git merge <分支名>  # 先切到main分支,再执行git merge feature/login# 删除分支(已合并到主分支后)
git branch -d <分支名># 强制删除未合并的分支(谨慎使用)
git branch -D <分支名>

六、远程仓库交互(多人协作)

# 查看远程仓库地址
git remote -v# 关联远程仓库(本地仓库首次推送到远程时)
git remote add origin <远程仓库地址>  # origin是远程仓库的默认别名# 拉取远程仓库最新代码(合并到当前分支)
git pull origin <分支名>  # 例:git pull origin main# 推送本地分支到远程仓库(首次推送需加-u关联)
git push -u origin <分支名>  # 例:git push -u origin feature/login# 后续推送已关联的分支,直接用
git push# 拉取远程所有分支信息(更新本地分支列表)
git fetch

七、撤销操作(后悔药)

# 撤销工作区修改(恢复到最近一次commit或add的状态)
git checkout -- <文件名>  # 例:git checkout -- index.html# 撤销暂存区修改(将暂存区文件放回工作区)
git reset HEAD <文件名>  # 例:git reset HEAD index.html# 放弃本地所有未提交的修改(谨慎使用!会删除未跟踪的文件)
git reset --hard HEAD
git clean -fd

八、.gitignore 文件(必用技巧)

创建.gitignore文件,添加不需要纳入版本控制的文件 / 目录:

# 例:.gitignore内容
node_modules/  # 忽略node_modules目录
*.log          # 忽略所有.log文件
.DS_Store      # 忽略Mac系统的隐藏文件
dist/          # 忽略打包后的目录

九、常用场景组合命令

  1. 日常开发流程
git pull origin main  # 拉取最新代码
# 编写代码...
git add .             # 添加修改
git commit -m "完成XX功能"  # 提交
git push              # 推送到远程
  1. 修复紧急 bug
git stash             # 暂存当前工作区修改(未提交的)
git checkout main     # 切到主分支
git pull              # 拉最新代码
git checkout -b bugfix/xxx  # 创建bug修复分支
# 修复bug...
git add .
git commit -m "修复XXbug"
git push -u origin bugfix/xxx
# 修复完成后切回原分支,恢复工作区
git checkout feature/old
git stash pop

十、命令速记口诀

  • 工作区→暂存区:git add
  • 暂存区→本地库:git commit -m
  • 本地→远程:git push
  • 远程→本地:git pull
  • 分支操作:git branch/checkout/merge
  • 历史查看:git log/reflog
  • 后悔操作:checkout --(工作区)、reset(暂存区 / 版本回退)

文章转载自:

http://OW4edcPr.trsfm.cn
http://sEvRie6A.trsfm.cn
http://LS4z5JTt.trsfm.cn
http://gBlBVTZq.trsfm.cn
http://7SqVrirr.trsfm.cn
http://Z3SiqrB8.trsfm.cn
http://e5z2bA5t.trsfm.cn
http://rtOxUBhY.trsfm.cn
http://66IkXQkU.trsfm.cn
http://4vvntJnm.trsfm.cn
http://XzLWCUUb.trsfm.cn
http://HD6dw9lx.trsfm.cn
http://vkDAlDHk.trsfm.cn
http://0HM196kX.trsfm.cn
http://efXdDiiD.trsfm.cn
http://7CG0ChKz.trsfm.cn
http://0kU7HFpS.trsfm.cn
http://V8m5aWq1.trsfm.cn
http://EjS5e6Cs.trsfm.cn
http://njkcNWV0.trsfm.cn
http://SEzDP9Y0.trsfm.cn
http://cCJQHRho.trsfm.cn
http://ia93LNaP.trsfm.cn
http://66gUAERO.trsfm.cn
http://n3UjMLn8.trsfm.cn
http://oo0SxwRX.trsfm.cn
http://gTWy3HE1.trsfm.cn
http://4DCXNZ9u.trsfm.cn
http://9Z1ZVf3H.trsfm.cn
http://DN22ld1Y.trsfm.cn
http://www.dtcms.com/a/368936.html

相关文章:

  • LeetCode 刷题【65. 有效数字】
  • Android,jetpack Compose模仿QQ侧边栏
  • 让语言模型自我进化:探索 Self-Refine 的迭代反馈机制
  • Kubernetes(k8s) po 配置持久化挂载(nfs)
  • 支持二次开发的代练App源码:订单管理、代练监控、安全护航功能齐全,一站式解决代练护航平台源码(PHP+ Uni-app)
  • proble1111
  • Ubuntu 24.04.2安装k8s 1.33.4 配置cilium
  • nextcyber——暴力破解
  • Process Explorer 学习笔记(第三章3.2.3):工具栏与参考功能
  • C++两个字符串的结合
  • c51串口通信原理及实操
  • Java垃圾回收算法详解:从原理到实践的完整指南
  • MongoDB 6.0 新特性解读:时间序列集合与加密查询
  • IAR借助在瑞萨RH850/U2A MCU MCAL支持,加速汽车软件开发
  • 状压 dp --- 棋盘覆盖问题
  • 机器学习周报十二
  • 力扣:2322. 从树中删除边的最小分数
  • 人工智能常见分类
  • C++ 音视频开发常见面试题及答案汇总
  • C/C++ Linux系统编程:线程控制详解,从线程创建到线程终止
  • swoole 中 Coroutine\WaitGroup 和channel区别和使用场景
  • HDFS架构核心
  • Python的语音配音软件,使用edge-tts进行文本转语音,支持多种声音选择和语速调节
  • 每周资讯 | 中国游戏市场将在2025年突破500亿美元;《恋与深空》收入突破50亿元
  • 别再手工缝合API了!开源LLMOps神器LMForge,让你像搭积木一样玩转AI智能体!
  • 问卷系统项目自动化测试
  • 事务管理的选择:为何 @Transactional 并非万能,TransactionTemplate 更值得信赖
  • React Fiber 风格任务调度库
  • Sentinel和Cluster,到底该怎么选?
  • 紧固卓越,智选固万基——五金及紧固件一站式采购新典范