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

Git常用命令简明教程

本教程整合并优化了Git核心命令,涵盖初始化、配置、文件操作、分支管理、远程仓库操作及常见场景,适合快速入门和日常参考。命令按使用流程分组,简洁明了,包含注意事项和最佳实践。


1. 初始化与配置

初始化Git仓库并设置基本配置。

  • git init
    初始化当前目录为Git仓库,创建.git文件夹。

  • git clone <repository_url>
    克隆远程仓库到本地,例如git clone https://github.com/username/repository.git

  • git status
    查看当前分支状态,显示已修改、已暂存或未跟踪的文件。

  • git config --global user.name “Your Name”
    设置全局用户名,例如"Your Name"。

  • git config --global user.email “your.email@example.com”
    设置全局邮箱,例如"your.email@example.com"。

  • git config --global core.editor “code --wait”
    配置默认编辑器为VS Code(替代VIM)。


2. 文件操作与提交

管理文件修改、暂存和提交。

  • git add <file_name>
    将指定文件暂存到待提交区域。

  • git add .
    暂存当前目录下所有修改的文件。建议:逐个添加文件,确保提交内容清晰。

  • git commit -m “message”
    提交暂存文件到本地仓库,附带简洁描述性提交信息,例如git commit -m "Add login feature"

  • touch .gitignore
    创建.gitignore文件,指定忽略的文件或文件夹(例如node_modules/.env)。

  • git checkout – <file_name>
    丢弃工作区中指定文件的修改,恢复到最新提交状态。

  • git reset --hard <commit_hash>
    将当前分支回退到指定提交,丢弃之后的所有更改。注意:谨慎使用,数据不可恢复。


3. 查看历史与差异

检查提交历史和代码差异。

  • git log
    显示详细提交历史记录。

  • git log --oneline
    以单行格式简洁显示提交历史。

  • git show <commit_hash>
    查看指定提交的详细信息。

  • git diff
    比较工作区与暂存区之间的差异。

  • git diff --staged
    比较暂存区与上次提交之间的差异。

  • git diff <commit_hash1> <commit_hash2>
    比较两个提交之间的差异(可使用..简化,如git diff <hash1>..<hash2>)。

  • git diff
    比较两个分支之间的差异。


4. 分支管理

创建、切换、合并和删除分支。

  • git branch
    列出所有分支,当前分支前有*标记。

  • git branch <branch_name>
    创建新分支,例如git branch feature-login

  • git checkout <branch_name>git switch <branch_name>
    切换到指定分支。

  • git checkout -b <branch_name>git switch -c <branch_name>
    创建并立即切换到新分支。

  • git merge <branch_name>
    将指定分支合并到当前分支。建议:在main分支上合并其他分支。
    注意:若不同分支修改同一文件,可能引发冲突,需手动编辑文件,保留所需代码并删除冲突标记。

  • git rebase <branch_name>
    将当前分支的提交重新应用到指定分支(例如master)上。注意:会改写历史,团队协作时需谨慎。

  • git branch -d <branch_name>
    删除已合并的本地分支。未合并分支需用-D强制删除。


5. 暂存工作

临时保存修改以切换分支。

  • git stash
    暂存当前分支的未提交修改,允许切换分支。

  • git stash pop
    恢复最近一次暂存的修改,可在原分支或新分支应用。

  • git stash list
    列出所有暂存记录。


6. 远程仓库操作

与远程仓库(例如GitHub)交互。

  • git remote -v
    查看已配置的远程仓库信息。

  • git remote add origin
    添加远程仓库,例如git remote add origin https://github.com/username/repository.git

  • git remote remove
    删除指定远程仓库连接。

  • git remote rename <old_name> <new_name>
    重命名远程仓库连接。

  • git remote set-url origin <new_url>
    修改远程仓库URL。

  • git push -u origin <branch_name>
    推送本地分支到远程仓库并设置上游分支,例如git push -u origin main

  • git push origin <branch_name>
    推送指定分支到远程仓库。

  • git pull
    从远程仓库拉取代码并合并到当前分支。等效于git fetchgit merge


7. GitHub特定操作

在GitHub上创建和管理仓库。

  1. 创建GitHub仓库
    登录GitHub,点击“New Repository”创建新仓库,复制仓库URL。

  2. git branch -M main
    重命名默认分支为main(或自定义名称),例如从master改为main

  3. 配置SSH密钥

    • 生成SSH密钥并添加到SSH代理:参考GitHub指南。
    • 添加SSH密钥到GitHub账户:参考GitHub指南。
    • 测试SSH连接:参考GitHub指南。

8. 注意事项与最佳实践

  • 分支隔离:除首次提交外,各分支独立,提交不会相互影响,除非执行合并或变基操作。
  • 冲突解决:合并冲突时,Git会标记冲突区域,需手动编辑文件,保留所需代码,删除冲突标记(如<<<<<<<=======>>>>>>>)。
  • 谨慎使用rebasegit rebase会改写提交历史,公开分支上使用可能导致团队协作问题。
  • 提交信息:编写清晰的提交信息,描述变更内容,例如“Fix login bug”或“Add user profile page”。
  • gitignore:在项目初期创建.gitignore,忽略临时文件、依赖文件夹(如node_modules/)等。
  • 备份与安全:定期推送代码到远程仓库,避免本地数据丢失。
http://www.xdnf.cn/news/2399.html

相关文章:

  • 【每日随笔】文化属性 ① ( 天机 | 强势文化与弱势文化 | 文化属性的形成与改变 | 强势文化 具备的特点 )
  • 有源晶振输出匹配电阻选择与作用详解
  • AUTOSAR_Feature_Model_Analysis
  • 近期有哪些断链危机?如何提升供应链风险管理能力?
  • 头歌实训之游标触发器
  • 【Jupyter 启动时如何指定目录】
  • Android开机动画资源包制作(测试使用)
  • 数据库3,
  • 使用wavesurferJs实现录音音波效果
  • 突破常规:探索无 get 方法类设计的独特魅力
  • 1、Linux操作系统下,ubuntu22.04版本切换中英文界面
  • Spring security详细上手教学(三)密码管理
  • 基于STM32、HAL库的HX710A模数转换器ADC驱动程序设计
  • 【PyCharm- Python- ArcGIS】:安装一个和 ArcGIS 不冲突的独立 Python让PyCharm 使用 (解决全过程记录)
  • 树莓派超全系列教程文档--(44)如何在树莓派上编译树莓派内核
  • 详解 Unreal Engine(虚幻引擎)
  • 如何配置osg编译使支持png图标加载显示
  • Arduino 入门学习笔记(六):外部中断实验
  • vscode本地化显示远程图形化界面
  • 剑指Offer(数据结构与算法面试题精讲)C++版——day21
  • 使用 LLM助手进行 Python 数据可视化
  • 为什么选择 Spring Boot? 它是如何简化单个微服务的创建、配置和部署的?
  • 强化学习机器人路径规划——Sparrow复现
  • 【项目篇之消息序列化】仿照RabbitMQ模拟实现消息队列
  • 毕业设计-基于深度学习的入侵检测系统
  • SpringCloud组件——OpenFeign
  • Windows怎样使用curl下载文件
  • 【C到Java的深度跃迁:从指针到对象,从过程到生态】第四模块·Java特性专精 —— 第十四章 集合框架:告别手写链表的苦役
  • 构建AI大模型应用的LangChain之核心功能
  • C++:STL—容器