Git基础知识与常用命令指南

news2024/11/20 15:40:02

这是一个Git基础知识和常用命令的简要指南,涵盖了日常开发中最常用的操作。你可以将这个指南保存下来,作为日常工作的参考。
image.png

目录

  • 基础篇
    • 1. Git基本概念
    • 2. 配置Git
    • 3. 创建仓库
    • 4. 基本的工作流程
    • 5. 分支操作
    • 6. 查看历史
    • 7. 撤销更改
    • 8. 远程仓库操作
  • Git进阶知识与技巧指南
    • 1. 分支管理策略
      • Git Flow
      • GitHub Flow
    • 2. 高级分支操作
    • 3. 撤销操作
    • 4. 储藏(Stash)
    • 5. 子模块(Submodule)
    • 6. 打标签
    • 7. 使用别名
    • 8. 使用 Git Hooks
    • 9. 使用 Git Large File Storage (LFS)
    • 10. 高级日志查看
  • 总结

学习Git的一些建议:

  1. 先理解基本概念,如仓库、分支、提交等。
  2. 从基本的工作流程开始练习:修改文件、暂存、提交、推送。
  3. 尝试创建和管理分支,这是Git的强大特性之一。
  4. 学会查看和理解项目历史,使用git loggit diff
  5. 熟悉如何处理冲突,这在团队协作中很重要。
  6. 多加练习,可以创建一个测试仓库来尝试各种命令。

基础篇

1. Git基本概念

image.png

  • 仓库(Repository): 用来存放项目代码的地方
  • 分支(Branch): 独立的开发线
  • 提交(Commit): 保存当前工作进度
  • 远程仓库(Remote): 托管在网络上的项目仓库

2. 配置Git

image.png

git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

3. 创建仓库

git init  # 在当前目录初始化一个新的Git仓库
git clone <url>  # 克隆一个远程仓库到本地

4. 基本的工作流程

image.png

git status  # 查看仓库状态
git add <file>  # 将文件添加到暂存区
git commit -m "commit message"  # 提交更改
git push origin <branch>  # 将本地更改推送到远程仓库
git pull  # 从远程仓库拉取更新

5. 分支操作

image.png

git branch  # 列出所有本地分支
git branch <branch-name>  # 创建新分支
git checkout <branch-name>  # 切换到指定分支
git merge <branch-name>  # 合并指定分支到当前分支

6. 查看历史

image.png

git log  # 查看提交历史
git diff  # 查看未暂存的更改

7. 撤销更改

git checkout -- <file>  # 撤销对文件的修改
git reset HEAD <file>  # 取消暂存文件
git revert <commit>  # 撤销某次提交

8. 远程仓库操作

image.png

git remote add origin <url>  # 添加远程仓库
git fetch  # 从远程仓库获取最新更改但不合并
git pull  # 拉取远程更改并合并到当前分支
git push origin <branch>  # 推送本地分支到远程仓库

记住,实践是学习Git的最好方法。尝试在一个测试仓库中使用这些命令,会帮助你更好地理解Git的工作原理。
image.png

Git进阶知识与技巧指南

  • 分支管理策略:了解并在实际项目中尝试使用Git Flow或GitHub Flow。
  • 练习高级分支操作:尝试使用rebase和cherry-pick,理解它们与merge的区别。
  • 熟悉撤销操作:理解reset和revert的不同,谨慎使用,特别是在共享分支上。
  • 利用stash功能:在需要快速切换任务时,stash非常有用。
  • 了解子模块:如果你的项目依赖其他Git仓库,子模块会很有帮助。
  • 使用标签:为重要的版本打标签,便于快速定位。
  • 设置别名:为常用命令设置别名,提高效率。
  • 探索Git Hooks:尝试使用pre-commit hook来自动运行代码检查。
  • 考虑使用Git LFS:如果项目中有大文件,Git LFS可以帮助管理。
  • 学会高效查看日志:使用不同的log选项来更好地理解项目历史。
    这些高级特性需要在实际项目中反复练习才能熟练掌握。
    你可以创建一个练习项目,逐个尝试这些功能。

1. 分支管理策略

Git Flow

一种常用的分支管理策略,包括以下分支:

  • master: 主分支,存放稳定版本
  • develop: 开发分支
  • feature: 功能分支
  • release: 发布分支
  • hotfix: 热修复分支

这个图表展示了一个基于 Git Flow 的简化工作流。主要特点包括:

  • 主分支(main):只包含稳定的、可发布的代码。
  • 开发分支(develop):日常开发的集成分支。
  • 特性分支(feature):用于开发新功能。
  • 发布分支(未显示):用于准备新的生产版本。
  • 热修复分支(未显示):用于快速修复生产问题。

GitHub Flow

一种更简单的工作流:

  • 只有一个长期分支master
  • 其他都是短期的功能分支

2. 高级分支操作

git rebase <branch>  # 变基操作,将当前分支移植到指定分支之上
git cherry-pick <commit>  # 将指定的提交应用到当前分支

3. 撤销操作

git reset --hard <commit>  # 将HEAD重置到指定提交
git revert <commit>  # 创建一个新的提交来撤销指定提交的更改

4. 储藏(Stash)

git stash  # 暂时储藏当前工作目录的更改
git stash list  # 查看所有储藏
git stash apply  # 应用最近的储藏
git stash drop  # 删除最近的储藏

5. 子模块(Submodule)

git submodule add <url>  # 添加子模块
git submodule init  # 初始化子模块
git submodule update  # 更新子模块

6. 打标签

git tag <tagname>  # 创建轻量标签
git tag -a <tagname> -m "message"  # 创建附注标签
git push origin <tagname>  # 推送标签到远程

7. 使用别名

.gitconfig 文件中设置别名可以简化常用命令:

[alias]
    co = checkout
    br = branch
    ci = commit
    st = status

8. 使用 Git Hooks

Git hooks 是在 Git 执行特定事件时自动运行的脚本,位于 .git/hooks 目录下。常用的 hooks 包括:

  • pre-commit: 提交前运行
  • post-commit: 提交后运行
  • pre-push: 推送前运行

9. 使用 Git Large File Storage (LFS)

对于大文件的版本控制,可以使用 Git LFS:

git lfs install  # 安装 Git LFS
git lfs track "*.psd"  # 追踪所有 PSD 文件

10. 高级日志查看

git log --graph --oneline --all  # 查看分支图
git reflog  # 查看所有操作历史

这些进阶技巧可以帮助你更高效地使用Git,特别是在复杂的项目或团队协作中。随着实践,你会逐渐掌握这些技巧,并在日常工作中灵活运用。

总结

Git 是一个非常强大的版本控制系统,虽然短时间无法全面掌握,但我们可以学习基础知识和常用命令。以下是一个简单的学习大纲:

  1. Git 基础概念 (1小时)

    • 什么是版本控制
    • Git 的历史和优势
    • 仓库、提交、分支的概念
  2. 安装和配置 Git (30分钟)

    • 在你的操作系统上安装 Git
    • 配置用户名和邮箱
  3. 创建和克隆仓库 (1小时)

    • 使用 git init 创建新仓库
    • 使用 git clone 克隆现有仓库
  4. 基本的 Git 工作流程 (2小时)

    • 使用 git status 查看仓库状态
    • 使用 git add 暂存更改
    • 使用 git commit 提交更改
    • 使用 git log 查看提交历史
  5. 分支操作 (2小时)

    • 创建分支 git branch
    • 切换分支 git checkout
    • 合并分支 git merge
  6. 远程仓库操作 (2小时)

    • 添加远程仓库 git remote add
    • 推送到远程 git push
    • 从远程拉取 git pull
  7. 实践项目 (剩余时间)

    • 创建一个小项目,运用学到的 Git 命令
    • 模拟团队协作,创建分支、合并更改等
  8. 额外资源和回顾 (30分钟)

    • 回顾学习内容
    • 推荐进阶学习资源

这个计划涵盖了 Git 的基础知识。

如果你想要更详细的解释或者关于某个特定部分的更多信息,请随时告诉我。欢迎在评论区交流~

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

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

相关文章

Java常用算法集合扩容机制分析

基础篇 基础篇要点&#xff1a;算法、数据结构、基础设计模式 1. 二分查找 要求 能够用自己语言描述二分查找算法能够手写二分查找代码能够解答一些变化后的考法 算法描述 前提&#xff1a;有已排序数组 A&#xff08;假设已经做好&#xff09; 定义左边界 L、右边界 R&…

芯片的PPA-笔记

写在前面&#xff1a;这个仅记录自己对芯片PPA的一些思考&#xff0c;不一定正确&#xff0c;还请各位网友思辨的看待&#xff0c;欢迎大家谈谈自己的想法。 1 此次笔记的起因 记录的原因&#xff1a;自己在整理这段时间的功耗总结&#xff0c;又看到工艺对功耗的影响&#x…

十五、小型电脑没有数字键及insert,怎么解决IDEA快速插入getset构造这些方法

&#x1f33b;&#x1f33b;目录 一、小型电脑没有数字键及insert&#xff0c;怎么解决IDEA快速插入getset构造这些方法 一、小型电脑没有数字键及insert&#xff0c;怎么解决IDEA快速插入getset构造这些方法 解决&#xff1a; 1.winR打开搜索 2.osk回车 屏幕就出现了这样的一…

极狐GitLab 将亮相2024空天信息大会暨数字地球生态峰会,携手中科星图赋能空天行业开发者

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab &#xff1a;https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署…

新手教学系列——Git Stash踩坑

在之前的文章《如何彻底避免Git代码相互覆盖问题》中,我曾介绍过通过规范分支合并和使用git stash来避免代码覆盖问题。今天,我要深入探讨一下git stash的使用,并分享一些使用过程中遇到的坑,希望能帮你避免类似问题。 脚本mg.sh简介 为了更好地管理代码合并,我编写了一…

CSS - 深入理解选择器的使用方式

CSS基本选择器 通配选择器元素选择器类选择器id 选择器 通配选择器 作用&#xff1a;可以选中所有HTML元素。语法&#xff1a; * {属性名&#xff1b;属性值; }举例&#xff1a; /* 选中所有元素 */ * {color: orange;font-size: 40px; }在清除样式方面有很大作用 元素选择器…

医院陪诊系统开发的关键技术与挑战

随着医疗服务需求的不断提升&#xff0c;传统的医院服务模式面临着巨大的压力和挑战。为了提升患者的就医体验和医疗服务的效率&#xff0c;医院陪诊系统应运而生。本文将探讨医院陪诊系统开发的关键技术与挑战&#xff0c;并结合具体的技术代码进行分析。 一、医院陪诊系统的…

云计算渲染时代:选择Blender或KeyShot进行高效渲染

在云渲染技术日益成熟的背景下&#xff0c;挑选一款贴合项目需求的3D渲染软件显得尤为关键。当前&#xff0c;Blender与KeyShot作为业界领先的全能渲染解决方案&#xff0c;广受推崇。它们虽皆能创造出令人信服的逼真视觉效果&#xff0c;但在特色功能上各有所长。本篇文章旨在…

PMP–知识卡片--PDCA循环

记忆 PDCA&#xff1a;计划执行检查调整&#xff0c;计划观察动作&#xff1b;plan do check action 定义 PDCA循环的含义是将质量管理分为四个过程&#xff0c;即计划&#xff08;Plan&#xff09;、执行&#xff08;Do&#xff09;、检查&#xff08;Check&#xff09;、处…

Spring Boot Vue 毕设系统讲解1

项目结构 包说明 db&#xff1a;文件夹是存放数据脚本文件的 annotation&#xff1a; 系统自定义注解 config&#xff1a;系统定义的配置类 controller&#xff1a; 系统接口控制器类 dao&#xff1a; 系统dao类编写数据库查询方法和数据库交互 entity&#xff1a;数据库…

SpringSecurity 三更草堂学习笔记

0.简介 Spring Security是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity来做安全框架。小项目有Shiro的比较多&#xff0c;因为相比与Spring…

Java项目:基于SSM框架实现的学生公寓管理中心系统【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的学生公寓管理中心系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、…

【C++题解】1561. 买木头

问题&#xff1a;1561. 买木头 类型&#xff1a;省赛、数组问题、二分答案、贪心、2015江苏省青少年信息学奥林匹克竞赛复赛 题目描述&#xff1a; 有 n 个木材供应商&#xff0c;每个供货商有长度相同一定数量的木头。长木头可以锯短&#xff0c;但短木头不能接长。有一个客…

2024 年 6 月区块链游戏研报:Pixels 引发 DAU 波动,行业用户留存率差异显著

作者&#xff1a;Stella L (stellafootprint.network) 数据来源&#xff1a;区块链游戏研究页面 2024 年 6 月&#xff0c;加密货币市场遭遇显著回调&#xff0c;比特币跌幅达 7.3%&#xff0c;以太坊更是下跌了 9.8%。此番波动不可避免地波及区块链游戏领域&#xff0c;导致…

spring boot + vue3+element plus 项目搭建

一、vue 项目搭建 1、创建 vue 项目 vue create vue-element说明&#xff1a;创建过程中可以选择路由&#xff0c;也可也可以不选择&#xff0c;可以通过 npm install 安装 vue 项目目录结构 说明&#xff1a;api 为自己创建的文件夹&#xff0c;router 选择路由模块会自动…

秋招突击——7/5——复习{}——新作{跳跃游戏II、划分字母区间、数组中的第K个大的元素(模板题,重要)、前K个高频元素}

文章目录 引言正文贪心——45 跳跃游戏II个人实现参考实现 划分字母区间个人实现 参考实现数组中的第K个最大元素个人实现参考做法 前K个高频元素个人实现参考实现 总结 引言 今天就开始的蛮早的&#xff0c;现在是九点多&#xff0c;刚好开始做算法&#xff0c;今天有希望能够…

【贪心 堆 优先队列】502. IPO

本文涉及知识点 贪心 堆 优先队列 LeetCode502. IPO 假设 力扣&#xff08;LeetCode&#xff09;即将开始 IPO 。为了以更高的价格将股票卖给风险投资公司&#xff0c;力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限&#xff0c;它只能在 IPO 之前完成最多 k…

iOS多target时怎么对InfoPlist进行国际化

由于不同target要显示不同的App名称、不同的权限提示语&#xff0c;国际化InfoPlist文件必须创建名称为InfoPlist.strings的文件&#xff0c;那么多个target时怎么进行国际化呢&#xff1f;步骤如下&#xff1a; 一、首先我们在项目根目录创建不同的文件夹对应多个不同的targe…

LLM - 词向量 Word2vec

1. 词向量是一个词的低维表示&#xff0c;词向量可以反应语言的一些规律&#xff0c;词意相近的词向量之间近乎于平行。 2. 词向量的实现&#xff1a; &#xff08;1&#xff09;首先使用滑动窗口来构造数据&#xff0c;一个滑动窗口是指在一段文本中连续出现的几个单词&#x…

第11章 规划过程组(二)(11.8排列活动顺序)

第11章 规划过程组&#xff08;二&#xff09;11.8排列活动顺序&#xff0c;在第三版教材第390~391页&#xff1b; 文字图片音频方式 第一个知识点&#xff1a;主要工具与技术&#xff08;重要知识点&#xff09; 1、箭线图法(ADM) &#xff08;双代号网络图或活动箭线图&am…