热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

git基本用法教程(fork软件+git命令)

git基本用法教

git基本用法教程

  • 1. git commit
  • 2. git branch
  • 3. git checkout
  • 4. git merge
  • 5. git rebase
  • 6. 在提交树中移动
  • 7. 撤销变更
  • 8. 整理提交记录
  • 9. 提交的技巧
  • 10. git clone
  • 11. git push
  • 12. git pull
  • 13. git fetch
  • 14. git flow
  • 15. git stash
  • 16. fork的使用



当然除了环境和demo的运行和改写,work flow中当然少不了git的参与!

git使得开发的流程更加清晰,main, develop,release,feature,bugFix等branch的通力合作,使得项目可以更快,更高效的推进和整合。这里简单介绍下git的一些用法和语法,并且推荐大家使用fork进行本地项目的管理(当然使用原生的git也可以,原生的GUI不如fork友好,但是经验老道的程序员命令行用的嘎嘎飞起,分支流程都梳理的清楚,用啥都行~)
1. git commit

版本比对,将差异打包到一起作为一个提交记录

git保存提交的历史记录

语法:git commit 【一些本次提交的相关信息】

ps:注意这里只是将暂存区文件上传到本地代码仓库,并没有直接推向远端仓库

2. git branch

使用分支相当于:我想基于这个提交以及它所有父类提交进行新工作

语法:git branch branch_name

git branch -f main HEAD~3:将main分支强制指向HEAD的第三级父提交

3. git checkout

语法:git checkout nodeName

将当前节点切换到分支上

快捷创建分支并切换:

git checkout -b branchName

4. git merge

合并两个分支——新建一个分支,在其开发某个新功能,开发完成后再合并回主线。

merge合并两个分支:把两个父节点本身及他们的所有祖先包含进来

具体操作:将多个同名文件合并为同一个文件,该文件包含多个同名文件的所有内容,相同内容抵消

5. git rebase

提取一系列的提交记录,进行”复制“,在另外一个地方逐个放下

可以创造更线性的提交历史

语法:git rebase NodeName

将当前节点复制并放在NodeName的下方

6. 在提交树中移动

head——一个对当前所在分支的符号引用——指向正在其基础上进行工作的提交记录

head总是指向当前分支上最近的一次提交记录。通常指向分支名

分离的head让其指向了一个具体的提交记录而不是分支名

HEAD-> main -> C1

git checkout C1后变成:

HEAD -> C1

通过制定提交记录的哈希值(示例中为C1)在git中移动不方便,因为哈希值在git中会很长(基于SHA-1 40位),可以使用git log查看提交记录的哈希值

相对引用—:

^:向上移动1个提交记录

~num:向上移动多个提交记录

7. 撤销变更

git reset:通过把分支记录回退几个提交记录来实现撤销改动。改写历史,原来指向的提交记录就跟从来没有提交过一样。

git reset HEAD~1

git revert:这种改写历史的方法对大家一起使用的远程分支是无效的!

为了撤销更改并分享给别人,我们需要使用git revert:

更改为了撤销该提交(所以这里会自动git commit一个新”撤销“的版本),revert之后就可以把你的更改推送到远程仓库中

git revert HEAD

8. 整理提交记录

git cherry-pick 《提交号》

git cherry-pick C2 C4

交互式的rebase——从一系列提交记录中找到想要的记录

git rebase --interactive(-i)

会调用rebase UI界面,完成三件事:

调整提交记录的顺序

删除不想要的提交(切换pick的状态完成

合并提交

9. 提交的技巧

情况:分支上进行了一次提交,基于它创建了新分支,再次提交,此时想对以前某个提交记录进行调整:

git rebase -i

git commit --amend

git rebase -i

10. git clone

克隆远端仓库

语法:git clone https://xxx

从远程仓库URL加载创建一个与远程仓库一样的本地仓库

11. git push

推送将本地仓库同步到远端仓库中,一般推送(push)前先拉取(pull)一次,确保一致

12. git pull

从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作

git pull = git fetch + git merge

13. git fetch

从远程仓库获取信息并同步至本地仓库

14. git flow

团队工作时,每个人创建属于自己的分支branch,确认无误后提交到master分支上

15. git stash

将本地工作空间所有的修改暂存到stash中,并且随时可以取出、一般应用于解决冲突和切换分支的场景下

16. fork的使用

我们在这里https://git-fork.com/下载mac或Windows版本的fork,直接安装就行。
界面入图所示:
在这里插入图片描述
对于fork的操作后续补充~


推荐阅读
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 本文总结了多个常用的 Git 命令,包括分支管理、代码提交、远程仓库同步等,旨在帮助开发者高效利用 Git 进行版本控制。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • Java 架构:深入理解 JDK 动态代理机制
    代理模式是 Java 中常用的设计模式之一,其核心在于代理类与委托类共享相同的接口。代理类主要用于为委托类提供预处理、过滤、转发及后处理等功能,以增强或改变原有功能的行为。 ... [详细]
  • Linux环境下Git安装及常见问题解析
    本文详细介绍了在Ubuntu系统中安装Git的过程,包括环境检查、软件安装、用户配置以及SSH密钥生成等步骤,并针对安装过程中可能出现的问题提供了有效的解决方案。 ... [详细]
  • 了解如何快速搭建属于自己的个人博客,无需编程基础,适合Mac和Windows用户。通过本文,您将学会使用GitHub Pages和Hexo构建一个完全自主的在线空间。 ... [详细]
  • Gitee + Git 多人协作开发指南:轻松上手,解决代码冲突
    本文提供了一套详细的步骤,帮助团队成员快速安装和配置Git,通过Gitee进行高效的多人协作开发,同时解决常见的代码冲突问题。包括Git的下载、安装、与Gitee的集成以及项目管理的最佳实践。 ... [详细]
  • 本题涉及一棵由N个节点组成的树(共有N-1条边),初始时所有节点均为白色。题目要求处理两种操作:一是改变某个节点的颜色(从白变黑或从黑变白);二是查询从根节点到指定节点路径上的第一个黑色节点,若无则输出-1。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本题旨在通过给定的评级信息,利用拓扑排序和并查集算法来确定全球 Tetris 高手排行榜。题目要求判断是否可以根据提供的信息生成一个明确的排名表,或者是否存在冲突或信息不足的情况。 ... [详细]
  • Git管理工具SourceTree安装与使用指南
    本文详细介绍了Git管理工具SourceTree的安装、配置及团队协作方案,旨在帮助开发者更高效地进行版本控制和项目管理。 ... [详细]
  • 如何将本地Docker镜像推送到阿里云容器镜像服务
    本文详细介绍将本地Docker镜像上传至阿里云容器镜像服务的步骤,包括登录、查看镜像列表、推送镜像以及确认上传结果。通过本文,您将掌握如何高效地管理Docker镜像并将其存储在阿里云的镜像仓库中。 ... [详细]
  • 本文详细介绍了如何通过Git Bash在本地仓库与远程仓库之间建立连接并进行同步操作,包括克隆仓库、提交更改和推送更新等步骤。 ... [详细]
author-avatar
许琼博762375
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有