当前位置: 首页 > 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)

http://www.lryc.cn/news/353947.html

相关文章:

  • 春秋CVE-2022-23906
  • JavaFX安装与使用
  • 漫画|基于SprinBoot+vue的漫画网站(源码+数据库+文档)
  • python-项目实战
  • 单片机原理及技术(一)—— 认识单片机(C51编程)
  • 白嫖的在线工具类宝藏网站清单,快点击进来收藏一波
  • 【机器学习300问】97、机器学习中哪些是凸优化问题,哪些是非凸优化问题?
  • 两种盒模型
  • 【C++】类型转换
  • Redis RDB 持久化问题
  • windows 下nginx常用命令
  • xjoi题库一级1-10段题解(c语言版)
  • 1.int 与 Integer 的简单区别
  • 单片机原理及技术(二)—— AT89S51单片机(一)(C51编程)
  • 某方protobuf闲谈
  • 专为汽车内容打造的智能剪辑解决方案
  • 【C语言】二叉树的实现
  • 在ubuntu22.04里网站源码连不上mysql数据库
  • 博客说明 5/12~5/24【个人】
  • 豆瓣电影后端设计
  • 【深度学习】第1章
  • Vue3实战笔记(37)—粒子特效登录页面
  • 解锁无限可能:JavaScript与【机器学习】的浪漫邂逅
  • 【Linux】$()中的内容与不加$()时有什么区别
  • 2024最新前端面试八股文【基础篇293题】
  • 【NumPy】关于numpy.median()函数,看这一篇文章就够了
  • 起保停电路工作原理
  • 【Vue】Vue2使用ElementUI
  • 设计模式在芯片验证中的应用——模板方法
  • Webpack Bundle Analyzer:深入分析与优化你的包