EasyHPC - Git入门教程【笔记】

这篇具有很好参考价值的文章主要介绍了EasyHPC - Git入门教程【笔记】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

内容来源:超算习堂 (easyhpc.net)

01 基础知识

git是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds,Linux内核的发明人及该计划的合作者)创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。

git最初的开发动力来自于BitKeeper和Monotone。git最初只是作为一个可以被其他前端包装的后端而开发的,但后来git内核已经成熟到可以独立地用作版本控制。很多著名的软件都使用git进行版本控制,其中包括Linux内核、X.Org服务器和OLPC内核等项目的开发流程。

Github就是一个用git做版本控制的项目托管平台

主要功能

git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。git的速度很快,这对于诸如Linux内核这样的大项目来说自然很重要。git最为出色的是它的合并追踪(merge tracing)能力。

实现原理

git更像一个文件系统,直接在本机上获取数据,不必连接到主机端获取数据。每个开发者都可有全部开发历史的本地副本,changes从这种本地repository复制给其他开发者。这些changes作为新增的开发分支被导入,可以与本地开发分支合并。

分支是非常轻量级的,一个分支仅是对一个commit的引用

git是用C语言开发的,以追求最高的性能。git自动完成垃圾回收,也可以用命令git gc --prune直接调用。

git存储每个新创建的object作为一个单独文件。为了压缩存储空间占用, packs操作把很多文件使用差分压缩入一个文件中(packfile),并创建一个对应的索引文件,指明object在packfile中的偏移值。新创建的对象仍然作为单独文件存在。repacks操作非常费时间,git会在空闲时间自动做此操作。也可用命令git gc来直接启动repack。packfile与索引文件都用SHA-1作为校验和并作为文件名。git fsck命令做校验和的完整性验证。

git中的数据流与存储级别

EasyHPC - Git入门教程【笔记】,Git,git,笔记

git安装和配置

在Ubuntu系统中可以直接使用sudo apt install git直接安装,本次虚拟环境已安装git

首先配置用户信息:用户名和邮箱地址

git config --global user.name "ehpc"
git config --global user.email ehpc@ehpc.com

其中--global选项表示所有项目默认使用的用户信息,去掉后则会在特定项目中使用特定用户信息

可以使用git config --list查看已有配置信息

EasyHPC - Git入门教程【笔记】,Git,git,笔记

02 新建仓库

git有工作区、暂存区和版本库:

  • 工作区(Working directory):自己的工作目录
  • 暂存区(stage / index):暂时存放工作区中修改的内容
  • 版本库(repository):工作区的隐藏目录.git,可以用ls -a查看

新建仓库

git可以使用git init命令来初始化创建一个git仓库。此时,会生成一个.git目录

EasyHPC - Git入门教程【笔记】,Git,git,笔记

当然,也可以指定目录,使用命令:git init <directory>

EasyHPC - Git入门教程【笔记】,Git,git,笔记

克隆仓库

我们可以使用命令git clone <repo>从git仓库中克隆项目。

也可以指定目录,使用命令 git clone <repo> <directory>

EasyHPC - Git入门教程【笔记】,Git,git,笔记

03 工作流程

一般git的工作流程如下:

  • 克隆或创建git资源作为工作目录
  • 在工作目录里修改文件或添加文件
  • 更新自己的工作目录
  • 查看修改的内容
  • 提交修改
  • 有问题时撤回修改内容

创建仓库

使用如下命令创建一个测试用仓库

git init ehpc
cd ehpc

EasyHPC - Git入门教程【笔记】,Git,git,笔记

git add

使用git add将添加的文件或修改的文件加入本地的缓存区

我们首先创建两个文件,然后将其添加到缓存区

touch README ehpc.txt
echo "test" >> README
git add README ehpc.txt

EasyHPC - Git入门教程【笔记】,Git,git,笔记

git status

git status操作可以查看git当前状态,我们输入后可得到:

EasyHPC - Git入门教程【笔记】,Git,git,笔记

如果我们修改文件,如下命令:

echo "test2" >> README
git status

将会看到:

EasyHPC - Git入门教程【笔记】,Git,git,笔记

我们还可以再创建一个新的文件:

touch ehpc2.txt

将会看到:

EasyHPC - Git入门教程【笔记】,Git,git,笔记

也可以使用-s参数查看简易信息

git status -s

EasyHPC - Git入门教程【笔记】,Git,git,笔记

"AM"表示添加到缓存后又有改动

git diff

git diff可以查看git status的结果的详细信息,可以添加参数--cached表示已缓存的改动--stat显示摘要

git diff

EasyHPC - Git入门教程【笔记】,Git,git,笔记

git diff --stat

EasyHPC - Git入门教程【笔记】,Git,git,笔记

git add README
git diff --cached

EasyHPC - Git入门教程【笔记】,Git,git,笔记

git commit

git commit将缓存区内容添加到仓库中

git commit -m 'first commit'
git satus

EasyHPC - Git入门教程【笔记】,Git,git,笔记

其中-m参数表示后面为提交注释

也可通过添加-a参数跳过add过程:

EasyHPC - Git入门教程【笔记】,Git,git,笔记

git rm

要从git仓库中删除文件,则必须使用git rm命令:

git rm ehpc.txt
ls

EasyHPC - Git入门教程【笔记】,Git,git,笔记

可以通过添加-f参数执行强制删除--cached参数不删除工作区文件

git rm --cached README

EasyHPC - Git入门教程【笔记】,Git,git,笔记

递归删除当前目录时,使用:

git rm -r  *

git mv

作用与git rm类似:

EasyHPC - Git入门教程【笔记】,Git,git,笔记

04 分支管理

每个git仓库都可以拥有很多个分支,这样可以在分支之后,不影响主线的同时继续自己的工作,同时,在开发完成后,还可以合并分支。

创建分支

通过git branch <name>创建分支,git branch查看分支列表,执行:

git branch ehpcbranch
git branch

EasyHPC - Git入门教程【笔记】,Git,git,笔记

Git 新建分支出现报错:“fatal: Not a valid object name: ‘master‘.“_is not a valid branch name_Lakers2015的博客-CSDN博客

切换分支

通过git checkout <name>切换分支,我们切换分支并修改文件:

git checkout ehpcbranch
echo "branch"  >> README.md
git status
git add README.md
git commit -m "branch commit"

EasyHPC - Git入门教程【笔记】,Git,git,笔记

最后再切回master分支:

git checkout master

EasyHPC - Git入门教程【笔记】,Git,git,笔记

合并分支

使用git merge -m "" <name>合并分支:

EasyHPC - Git入门教程【笔记】,Git,git,笔记

合并冲突

当分支与master都有更改时合并,则会出现冲突,我们现在制造冲突并尝试合并:

git checkout ehpcbranch
echo "branch2"  >> README.md
git commit -am "conflict"
git checkout master
echo "branch3"  >> README.md
git commit -am "conflict2"
git merge ehpcbranch

将会看到如下结果:

EasyHPC - Git入门教程【笔记】,Git,git,笔记

此时需要手动修正冲突:

git diff
vim README.md
cat README.md
git diff
git add README.md
git commit -m "merge cobflict"

EasyHPC - Git入门教程【笔记】,Git,git,笔记

删除分支

删除分支操作很简单,只需使用git branch -d <name>即可:

git branch
git branch -d ehpcbranch
git branch

EasyHPC - Git入门教程【笔记】,Git,git,笔记

05 日志操作

使用git后,会进行很多操作,当我们想回顾操作历史时,就可以查看git的日志来了解历史操作

查看日志

git中可以使用git log命令查看所有的commit:

git log

EasyHPC - Git入门教程【笔记】,Git,git,笔记

q退出,也可以添加--oneline参数简单查看:

git log --oneline

EasyHPC - Git入门教程【笔记】,Git,git,笔记

添加--graph参数查看分支信息:

git log --oneline --graph

EasyHPC - Git入门教程【笔记】,Git,git,笔记

还有--author参数查看指定用户的记录,使用--since--before--until--after指定日期查看,--reverse逆向查看。

日志统计

添加--stat参数以详细显示每次commit中修改的文件的内容:

git log --stat

EasyHPC - Git入门教程【笔记】,Git,git,笔记

日志排序

除了--reverse可以重新排序,--topo-order同样可以:

git log --topo-order --graph

EasyHPC - Git入门教程【笔记】,Git,git,笔记

格式化日志

可以指定--pretty参数改变显示格式:

git log --pretty=short

EasyHPC - Git入门教程【笔记】,Git,git,笔记

git log --pretty=oneline  --graph

EasyHPC - Git入门教程【笔记】,Git,git,笔记文章来源地址https://www.toymoban.com/news/detail-789315.html

到了这里,关于EasyHPC - Git入门教程【笔记】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Git 入门教程】第九节、Git的最佳实践

    Git是一个强大的版本控制系统,可以帮助开发者管理和协调代码库。然而,正确使用Git并不总是容易。本文将介绍一些Git的最佳实践,以帮助开发者更好地利用Git来管理和协调代码库。   在使用Git时,编写有意义的提交信息是非常重要的。提交信息应该简明扼要地描述所做的

    2024年02月06日
    浏览(38)
  • 【Git 入门教程】第七节、Git 远程仓库(Github)

    GitHub 是一个基于Git的代码托管平台,它是全球最大的开源软件社区之一。GitHub允许开发者在上面创建和托管他们的Git仓库,并与其他开发者进行协作。   GitHub是一个非常流行的Git工具,它是开源社区的重要组成部分,并支持许多著名的开源项目。以下是一些GitHub的主要功能

    2024年02月01日
    浏览(63)
  • 【Git 入门教程】第三节、Git的分支和合并

    Git的分支和合并是Git中最重要的概念之一。使用Git可以轻松地创建、切换和合并分支,这为团队协作开发提供了极大的便利。在本文中,我们将介绍Git分支的基本概念和操作方式。 在Git中,分支是指一个代码库的不同版本。分支允许开发者独立地开发特定功能或修复故障,而

    2024年02月07日
    浏览(48)
  • Git 新手快速入门教程

    1. 何为版本控制 版本控制是一种记录文件变化的系统,可以跟踪文件的修改历史,并允许用户在不同版本之间进行比较、恢复或合并。它主要用于软件开发过程中管理代码的变更,但也可以应用于任何需要跟踪文件变更的场景。 版本控制系统(VCS)可以帮助团队协作开发,

    2024年04月26日
    浏览(60)
  • git菜鸟入门级教程

    Git是一个分布式版本控制系统,它可以帮助开发者 管理和追踪 代码的变化。下面是一个保姆级的Git教程,包括 概述、理论、指令、创建及代码初始化 完整步骤、 分支与冲突 以及遇到的问题。 概述 Git是一个开源的分布式版本控制系统,最初由Linus Torvalds开发。它可以追踪代

    2024年02月16日
    浏览(46)
  • Git入门详细教程

    Git官网 Git是一个开源的 分布式版本控制系统 ,用于跟踪文件的变化和协作开发。它允许多个开发者在同一项目中共同工作,并能够有效地管理代码的版本和历史记录。Git可以帮助开发团队更好地协作,追踪代码变更,并且可以在需要时轻松地回滚到之前的版本。 版本控制是

    2024年01月19日
    浏览(50)
  • GIT安装教程(入门)

    目录 前言 Git作者 官网 GIT优点 GIT缺点 为什么要使用 Git 下载以及安装步骤 一、官网下载 二、GIT安装步骤 1、安装get程序 2、许可声明 3、选择安装路径 4、选择git组件 5、创建菜单名称 6、 git文件默认编辑器 7、设置新存储库中初始分支的名称 8、调整Path环境 9、选择SSH可执行

    2024年02月15日
    浏览(49)
  • 一小时Git入门教程【上篇】

    使用方式 命令行、图形化界面、IDE插件 首先配置用户名 再来配置邮箱 注意:以上命令只需要执行一次,如果之前已经执行过了,那么这一步可以省略。 保存用户名和密码到本地 git config --global credential.helper store 是一个 Git 命令,用于配置 Git 在处理远程仓库时如何存储凭据

    2024年04月08日
    浏览(44)
  • 《Git入门实践教程》前言+目录

    版本控制系统(VCS)在项目开发中异常重要,但和在校大学生的交流中知道,这个重要方向并未受到重视。具备这一技能,既是项目开发能力的体现,也可为各种面试加码。在学习体验后知道,Git多样化平台、多种操作方式、丰富的资源为业内人士提供了方便的同时,也造成

    2024年02月10日
    浏览(72)
  • 【Git 入门教程】第四节、Git冲突:如何解决版本控制的矛盾

    Git是目前最流行的版本控制系统之一,它为团队协作开发提供了方便和高效的方式。然而,在多人同时修改同一个文件时,可能会出现代码 冲突(conflict) ,导致代码无法正确合并。那么,如何解决Git冲突呢? 在多分支并行处理时,每一个分支可能是基于不同版本的主干分

    2024年02月05日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包