git基本用法教程(fork软件+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的操作后续补充~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

chartgpt 告诉我的,loss 函数的各种知识

一、libtorch中常见的损失函数及其使用场景的总结1. CrossEntropyLoss:CrossEntropyLoss(交叉熵损失)主要用于分类任务。它适用于多分类问题,其中每个样本只属于一个类别(互斥)。该损失函数将预测概率与真实标签的one-…

应届生投腾讯,被面试官问了8个和 ThreadLocal 相关的问题。

问:谈一谈ThreadLocal的结构。 ThreadLocal内部维护了一个ThreadLocalMap静态内部类,ThreadLocalMap中又维护了一个Entry静态内部类,和Entry数组。 Entry类继承弱引用类WeakReference,Entry类有一个有参构造函数,参数…

【数据结构】用队列实现栈

💯💯💯 本篇总结利用队列如何实现栈的相关操作,不难观察,栈和队列是可以相互转化的,需要好好总结它们的特性,构造出一个恰当的结构来实现即可,所以本篇难点不在代码思维,…

大数据应用——Hadoop运行模式(伪分布式运行)

4.2 伪分布式运行模式4.2.1 启动HDFS并运行MapReduce程序1. 分析 (1)配置集群(2)启动、测试集群增、删、查没有改(多台机子麻烦)(3)执行WordCount案例2. 执行步骤(1&…

前端vue实现导出pdf文件报告组件

大屏项目有一个需求,需要对展示的内容进行文件导出,但是目前后台没有相关的逻辑,所以只能前端硬上,在参考了其他许多的逻辑之后,目前我自己这边做了一套比较笨的组件,通过拼接标签这种方法来实现对你想需要…

队列-我的基础算法刷题之路(六)

本篇博客旨在整理记录自已对队列的一些总结,以及刷题的解题思路,同时希望可给小伙伴一些帮助。本人也是算法小白,水平有限,如果文章中有什么错误之处,希望小伙伴们可以在评论区指出来,共勉 💪。…

seaborn从入门到精通03-绘图功能实现02-分类绘图Categorical plots

seaborn从入门到精通03-绘图功能实现02-分类绘图Categorical plots总结参考关系-分布-分类分类绘图-Visualizing categorical data图形级接口catplot--figure-level interface导入库与查看tips和diamonds 数据分类散点图参考分布散点图stripplot分布密度散点图-swarmplot&#…

进程与线程

文章目录进程与线程进程什么是进程进程的组成程序段数据段程序控制块例子线程什么是线程线程的组成线程描述信息程序计数器栈内存例子进程与线程的区别进程与线程 进程 什么是进程 ​ 什么是进程呢?简单来说,进程是程序的一次启动执行。什么是 程序呢…

【C#进阶】C# 集合类

序号系列文章16【C#进阶】C# 索引器17【C#进阶】C# 委托18【C#进阶】C# 事件文章目录前言1、集合类是什么2、动态数组(ArrayList)3、压缩数组(BitArray)4、哈希表(Hashtable)5、队列(Queue&…

【数据结构】链表OJ题

目录面试题 02.04 分割链表剑指 Offer II 027 回文链表160 相交链表141 环形链表142 环形链表 II138 复制带随机指针的链表面试题 02.04 分割链表 定义lesshead和greaterhead链接小于和大于等于k的值分别设置哨兵位和尾节点指针最后将两表去除哨兵位再链接 struct ListNode* p…

内存泄漏和内存溢出的区别

参考答案 内存溢出(out of memory):指程序在申请内存时,没有足够的内存空间供其使用,出现 out of memory。内存泄露(memory leak):指程序在申请内存后,无法释放已申请的内存空间,内存泄露堆积会导致内存被…

论文解读:PP-LiteSeg: A Superior Real-Time Semantic Segmentation Model

发表时间:2022 论文地址:https://arxiv.org/abs/2204.02681 项目地址:https://github.com/PaddlePaddle/PaddleSeg PP-LiteSeg,一个新的轻量级实时语义分割任务模型,在分割精度和推理速度之间实现了一种最先进的权衡…

JVM垃圾回收机制

文章目录JVM垃圾回收机制如何确定该对象是垃圾引用计数可达性分析如何释放对象常用策略JVM垃圾回收机制 以对象为单位来进行回收 如何确定该对象是垃圾 Java 中使用 可达性分析方法 Python 中时使用 引用计数方法 引用计数 使用额外的计数器,来记录某个对象有多少个…

【致敬未来的攻城狮计划】连续打卡第4天+物联网操作系统概述

开启攻城狮的成长之旅!这是我参与的由 CSDN博客专家 架构师李肯(http://yyds.recan-li.cn)和 瑞萨MCU (https://www.renesas.cn/cn/zh) 联合发起的「 致敬未来的攻城狮计划 」的第 4 天,点击查看活动计划详…

【Vue3】用Element Plus实现列表界面

🏆今日学习目标:用Element Plus实现列表界面 😃创作者:颜颜yan_ ✨个人格言:生如芥子,心藏须弥 ⏰本期期数:第四期 🎉专栏系列:Vue3 文章目录前言效果图目录简介修改vite…

基于springboot框架实现心理健康心灵治愈交流平台【源码+论文】展示

基于springboot框架实现心灵心理健康 【源码论文】开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Ma…

CSS 7种居中效果实现原理与案例

目录 1.标准盒子居中 2.定位-绝对定位实现居中 3.表格方式实现垂直居中 4.弹性盒子:实现垂直居中 5.通过行高line-height实现垂直居中 6.变形定位实现居中 7.网格实现垂直居中 1.标准盒子居中 不需要设置display,只能实现水平居中 效果&#xff1…

代码随想录算法训练营第五十二天| ● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组

300.最长递增子序列 看完题后的思路 dp[i] [0,i]子数组中,以nums[i]结尾的子序列的长度 dp[i]dp[j]1 j从i-1向0遍历,在所有nums[j]<nums[i]中dp[j]最大 初始化 dp[0]1 代码 class Solution {public int lengthOfLIS(int[] nums) {if (nums.length0){return 0;}int[] dpne…

Gateway服务网关

Spring Cloud Gateway为微服务架构提供一种简单有效的统一的 API 路由管理方式。Gateway网关是所有微服务的统一入口。网关的核心功能特性&#xff1a;请求路由和负载均衡&#xff1a;一切请求都必须先经过gateway&#xff0c;但网关不处理业务&#xff0c;而是根据某种规则&am…

vue3自定义svg图标组件

可参考&#xff1a; 未来必热&#xff1a;SVG Sprites技术介绍 懒人神器&#xff1a;svg-sprite-loader实现自己的Icon组件 在Vue3项目中使用svg-sprite-loader 前置知识 在页面中&#xff0c;虽然可以通过如下的方式使用img标签&#xff0c;来引入svg图标。但是&#xff0c;…