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

小白入职 必要熟悉 Git / tortoiseGit 工具

1.安装Git

1.1 了解Git

  • Git是分布式版本控制系统,没有中央服务器的
  • 每个人的电脑就是一个完整的版本库,工作时无需联网
  • 可多人协作,只需把各自的修改推送给对方,就可以互相看到对方的修改了

分布式版本控制工具管理方式: 

1.2  git 工作流程

一般工作流程如下:

  1. 从远程仓库中克隆 Git 资源作为本地仓库
  2. 从本地仓库中checkout代码然后进行代码修改
  3. 在提交前先将代码提交到暂存区
  4. 提交修改,提交到本地仓库(保存修改的各个历史版本)
  5. 在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库

2.TortoiseGit 软件安装

2.1 tortoisegit的介绍:

  • 完全兼容Git的命令行操作
  • 可以用于执行常规任务,如提交、查看日志、差异比较、创建分支和标签、创建补丁
  • 它还支持与远程仓库的交互,如推送(push)和拉取(pull)操作

2.2 下载

官方下载地址:https://download.tortoisegit.org/tgit/ 

3.安装中文语言包

安装完一般要重启一下电脑

4.使用 git 管理文件版本 

4.1 创建版本库(repository)

  1. 版本库又名仓库,英文名repository
  2. 可简单理解成一个目录,其中每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”
  3. 由于git是分布式版本管理工具,所以git在不需要联网的情况下也具有完整的版本管理能力

4.2 创建一个版本库

首先,创建一个空目录(D:\Work\git\repository)。在当前目录中点击右键中选择Git Bash来启动

概念:

  • 版本库:“.git ” 目录就是版本库
    • 将来文件都需要保存到版本库中
  • 工作目录:包含“.git”目录的目录
    • 也就是 .git 目录的上一级目录就是工作目录
    • 只有工作目录中的文件才能保存到版本库中

另外一种创建版本库的方式,使用TortoiseGit

4.3 设置用户信息4.4 github 上创建share仓库

仓库名:share

 echo "# share" >> README.mdgit initgit add README.mdgit commit -m "first commit"git branch -M maingit remote add origin https://github.com/heheda102410/share.gitgit push -u origin main

(1)从远程仓库中克隆 Git 资源作为本地仓库 

从URL: https://github.com/heheda102410/share.git 克隆现有的版本库

(2)从本地仓库中checkout代码然后进行代码修改 

在本地创建新的分支,叫做branch_01:

  • 命令是:git checkout -b branch_01 

可以从下图看出创建分支的同时,也切换到了branch_01分支了 

注意:使用git checkout命令切换分支的时候,工作区里未受控的文件不变(比如新文件,以及未add的文件更新)

(3)在提交前先将代码提交到暂存区

(4)提交修改,提交到本地仓库(保存修改的各个历史版本)

 git add .git commit -m "创建新分支branch_01初始状态"

 git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支

Git跟踪并管理的主要目标是修改变更,而非单个文件本身,比如,某次 commit是多个文件的更新,包括新建文件。

注意:如果文件被修改了,但是没有add,是不会被commit到存储库中的

 

当然这个步骤可以用tortoiseGit 来完成同样的效果:

首先,先回退一下版本,Git允许我们在版本的历史之间穿梭,使用

  • 命令git reset --hard commit_id

我们想知道commit_id ,可以从tortoiseGit查看,也可以在git bash中用命令查看:

SHA-1: 6f0033c564c9e788416d39a64469372f37e36320
SHA-1: b7e41e1596094a36c85324cb7941afe221dd0fd8
  • 要重返未来,用git reflog【另外一条类似命令为:git log --pretty=oneline】查看命令历史,以便确定要回到未来的哪个版本 
$ git log --pretty=oneline

命令git reset --hard commit_id$ git reset --hard b7e41e1596094a36c85324cb7941afe221dd0fd8

之前:

回退commit后:

现在,我们已经体验了一把回退版本的美妙,我们继续来探索其他的命令是什么功能吧!

首先,先回到我们新建了一个文本heheda_test.txt的版本

执行完以上命令后,已经出现了有heheda_test.txt这个版本了。接着在当前目录中,新增两张图片,然后在空白处右键点击tortoiseGit“Git commit(提交)...”

  • HEAD指向的版本就是当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100 
上一个版本就是HEAD^$ git reset --hard HEAD^

上上一个版本就是HEAD^^$ git reset --hard HEAD^^

上上一个版本就是HEAD^^$ git reset --hard HEAD~2

  • 使用git log --graph --pretty=oneline --abbrev-commit可以以图形的方式查看分支提交记录。比如:
git log --graph --pretty=oneline --abbrev-commit

多条commit合并成一条

$ git push --set-upstream origin branch_01

再创建一个分支,branch_02

推荐和参考文章:

切换为“合并分支”版本,那就会撤回1个视频

$ git push --force

$ git push --force-with-lease

使用 `-force` 被认为是有害的;了解 Git 的 `-force-with-lease` 命令_--force-with-lease-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/LeviDing/article/details/76789443 

对比branch_01仓库和main仓库,我们可以发现各自的存储内容都不太一样!

Git基础入门二:工作区和暂存区-CSDN博客

Git基础入门三:创建版本库和添加修改文件基本命令_使用git只添加修改文件的命令的是-CSDN博客

Git基础入门四:版本回退(撤销修改)_git clean -xdf 怎么撤回-CSDN博客

Git基础入门五:分支管理_branch 'dev' set up to track remote branch 'dev' f-CSDN博客

Git基础入门六:标签管理(git tag)_git label-CSDN博客

Git基础入门七:Git高级命令之Rebase_rebase是什么意思-CSDN博客

Git的安装和本地仓库基本操作使用详解(一)_tortoisegitplink,basedonputty;optimizedfortortoise-CSDN博客

如何使用TortoiseGit指北,一篇讲清 - 知乎 (zhihu.com)

相关文章:

小白入职 必要熟悉 Git / tortoiseGit 工具

1.安装Git 1.1 了解Git Git是分布式版本控制系统,没有中央服务器的每个人的电脑就是一个完整的版本库,工作时无需联网可多人协作,只需把各自的修改推送给对方,就可以互相看到对方的修改了 分布式版本控制工具管理方式&#xff…...

春秋CVE-2022-23906

简介 CMS Made Simple v2.2.15 被发现包含通过上传图片功能的远程命令执行 (RCE) 漏洞。此漏洞通过精心制作的图像文件被利用。 正文 1.进入靶场2.进入登录界面,弱口令admin/123456 3.进入后台,文件上传点 4.上传一句话木马图片 5.复制图片&#xf…...

JavaFX安装与使用

前言 最近学习了javafx,开始时在配置环境和导包时遇到了一些麻烦,关于网上很多方法都尝试过了,现在问题都解决了,和大家分享一下我是怎么实现javafx的配置,希望大家可以通过这个方法实现自己的环境配置! 🙈个人主页: 心.c 🔥文章专题:javafx &#x1f49…...

漫画|基于SprinBoot+vue的漫画网站(源码+数据库+文档)

漫画网站 目录 基于SprinBootvue的漫画网站 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大…...

python-项目实战

项目实战 1.外星人入侵小游戏 2.数据可视化 3.web应用开发 一、外星人入侵小游戏 需求: 开发大型项目时,做好规划后再动手编写项目很重要。规划可确保你不偏离轨道,从而提高项目成功的可能性。 在游戏《外星人入侵》中,玩家控制着一艘最…...

单片机原理及技术(一)—— 认识单片机(C51编程)

目录 一、单片机概述 1.1 什么是单片机 1.2 单片机的发展历史 1.3 单片机的特点 1.4 MCS-51 系列与 AT89S5x 系列单片机 1.4.1 MCS-51 系列单片机 1.4.2 AT89S5x 系列单片机 1.5 各种衍生品种的8051单片机 1.5.1 STC 系列单片机 1.5.2 C8051Fxxx 系列单片机 一、单片…...

白嫖的在线工具类宝藏网站清单,快点击进来收藏一波

简单整理了一下自己日常经常使用的10个免费工具网站,建议点赞关注收藏,快点分享给小伙伴们! 1.奶牛快传:用户体验更好的网盘工具。 https://cowtransfer.com/ 今年开始使用的一款网盘工具,和百度网盘类似,叫奶牛快传,如…...

【机器学习300问】97、机器学习中哪些是凸优化问题,哪些是非凸优化问题?

在机器学习的领域中,多数模型的参数估计问题实质上可以转化为优化问题。鉴于机器学习模型的多样性,不同的模型会对应着不同的损失函数,进而形成各具特色的优化问题。了解优化问题的形式和特点,对于提升我们求解模型参数的效率和准…...

两种盒模型

在CSS中,有两种主要的盒模型(Box Model),它们决定了元素的尺寸计算方式: 标准盒模型(W3C Box Model) 在标准盒模型中,元素的总宽度和总高度分别由以下几个部分组成: Cont…...

【C++】类型转换

目录 前言一、C语言中的类型转换二、为什么C需要四种类型转换三、C强制类型转换3.1 static_cast3.2 reinterpret_cast3.3 const_cast3.4 dynamic_cast3.5 RTTI 前言 本篇文章讲解的是C中对于C语言类型转换做出的一些更好的规范问题,同时也保证了在一些特殊场景下进…...

Redis RDB 持久化问题

前言 Redis 是内存数据库,它将自己的数据储存在内存里面,如果不想办法将储存在内存中的数据保存到磁盘里面,那么一旦服务器进程退出,服务器中的数据也就没了。 因此,Redis 提供了 RDB 持久化功能,这个功能…...

windows 下nginx常用命令

1、启动,目录cmd,后 start nginx.exe 2.重新加载 nginx -s reload 3.查看状态 tasklist /fi “imagename eq nginx.exe” 4.关闭 nginx -s quit...

xjoi题库一级1-10段题解(c语言版)

xjoi题库一级一段 xjoi题库一级二段 xjoi题库一级三段 xjoi题库一级四段 xjoi题库一级五段...

1.int 与 Integer 的简单区别

蓝桥杯刷题从此开始: 第一题就是两个数的和,个人看来主要考察 int与integer 的区别; 这是我提交的答案,竟然会报错: import java.util.*; //输入A、B,输出AB。 class add {public static void main(String …...

单片机原理及技术(二)—— AT89S51单片机(一)(C51编程)

目录 一、AT89S51单片机的片内硬件结构 二、AT89S51的引脚功能 2.1 电源及时钟引脚 2.2 控制引脚 2.3 并行 I/O口引脚 三、AT89S51的CPU 3.1 运算器 3.1.1 算术逻辑单元(ALU) 3.1.2 累加器A 3.1.3 程序状态字寄存器(PSW&#xff09…...

某方protobuf闲谈

问题 当我们去看某方的时候,搜索了关键词svm,然后通过抓包查看,请求的Request Payload是一串看不懂的乱码,并且返回的数据也大部分是乱码 观察请求的Content-Type是application/grpc-web+proto,没错数据的传输是protobuf的形式了 protobuf的相关概念和原理,网上有很多教…...

专为汽车内容打造的智能剪辑解决方案

汽车内容创作已成为越来越多车主和汽车爱好者热衷的活动。然而,如何高效、便捷地将行车途中的精彩瞬间转化为高质量的视频作品,一直是困扰着广大用户的一大难题。美摄科技凭借其深厚的视频处理技术和智能分析能力,推出了专为汽车内容记录而生…...

【C语言】二叉树的实现

文章目录 前言⭐一、二叉树的定义🚲二、创建二叉树🎡三、二叉树的销毁🎉四、遍历二叉树1. 前序遍历2. 中序遍历3. 后序遍历4. 层序遍历 🌲五、二叉树的计算1. 计算二叉树结点个数2. 计算二叉树叶子结点的个数3. 计算二叉树的深度4…...

在ubuntu22.04里网站源码连不上mysql数据库

在ubuntu22.04里网站源码连不上mysql数据库。后来找到了原因。 连不上的时候有报错信息: ERROR 1698 (28000): Access denied for user rootlocalhost 用在网上搜索该报错信息,找到了两篇有用的文章,用这两篇文章里的处理方法解决了问题。 …...

博客说明 5/12~5/24【个人】

博客说明 5/12~5/24【个人】 前言版权博客说明 5/12~5/24【个人】对比最后 前言 2024-5-24 13:39:23 对我在2024年5月12日到5月24日发布的博客做一下简要的说明 以下内容源自《【个人】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作…...

条件运算符

C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

git: early EOF

macOS报错&#xff1a; Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践

前言&#xff1a;本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中&#xff0c;跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南&#xff0c;你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案&#xff0c;并结合内网…...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序&#xff0c;无论是测试应用程序、搜寻漏洞还是收集情报&#xff0c;它们都能提升工作流程。 FoxyProxy 代理管理工具&#xff0c;此扩展简化了使用代理&#xff08;如 Burp…...