对于git功能的探索与研究

这篇具有很好参考价值的文章主要介绍了对于git功能的探索与研究。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

读前提示

注意:
本文只是面向初学者或者之前并未接触过git而想学习如何初步使用git的读者,如果您很擅长使用git,并善于维护远程仓库,那么不建议您看此篇文章,这会浪费您的时间。
当然,这篇文章还是能很好地告诉初学者如何简单的运用git的,比如三板斧这种简单的操作。
当然,看完这篇文章,还需要多多练习,才能熟练的使用这些命令行。
话不多说,我们直接开始。

文末附有相关参考链接。

前言

前几天上课的时候,老师说git的功能很多,有兴趣可以研究研究,今天趁着有时间,就来探索一番。

简介

git是什么

Git是一个开源分布式版本控制系统(VCS),可用于对代码版本的控制、分支管理等。 是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
并且,Git还是目前世界上最流行的分布式版本控制系统

Torvalds 开始着手自己开发 Git 是为了作为一种过渡方案来替代 BitKeeper(因为BitKeeper向他要钱)

使用git的好处

写代码是需要多人协作的,修改是不可避免的,然而我们既不希望因为多次修改而产生过多的文件,又希望能记录每次更改的内容。
所以,使用git就可以满足我们的需求。

一些注解:

版本控制系统:

因为项目是在不断地迭代开发的,所以就需要一个控制系统来记录某些代码是哪个版本的,这样在出问题时,方便去修补
版本控制系统可以理解为一个”数据库“,他会显示出当前版本与上一版本之间所有改动的细节。

git与svn

二者都是版本控制系统,下面就介绍一下二者各自的优劣

SVN

SVN是集中式的版本控制系统,它以一个服务器作为大本营,所有的代码提交到服务器进行统一的管理。当需要对代码进行改动时,需要先从服务器上下载一份拷贝,修改完成后,还需要上传回服务器。如图:
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据注意:
虽然在这个控制系统下,代码的一致性非常高,一对多的模式使管理员能轻松控制每个开发者的权限。
但,集中式版本控制系统是需要联网才能工作的,具有一定的局限性,且不适合人数较大的项目开发。

GIT

结构如图:
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据
优点:
不需要联网就能进行修改。因为版本都是在自己的电脑上,随时都可以将所做的修改提交到本地仓库,然后将本地版本仓库推送到远程版本仓库进行合并。
缺点:
GIT的缺点可能就是:难学,不好懂,精通要花很长时间(捂脸)。

下载与安装

多提一句:64位的机器就下64位的,32位的机器就下32位的。
git下载官网

过程图解:
此处的“only show …”要勾上,然后就一直点下一步即可。
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据

这里勾选上第一个选项“Launch …”
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据
安装完之后,右击鼠标能看到下面两个图标
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据
我们一般使用后者,也就是Git Bash Here
即通过命令行的方式使用Git,点开后如图:
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据

Git的使用:

开始

如果你是第一次使用Git的话,需要先创建一个新的目录。
可以创建多个,并且可以创建在不同的文件夹里。

mkdir test//创建一个目录名为test的目录
git init//初始化这个目录,让Git开始对这个目录进行版本控制

设置用户名和邮箱

因为Git是分布式版本控制系统,所以每个分支都要有自己的名字和邮箱,所以下载完后的第一步就是设置邮箱和地址。
格式如下:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

第一行:设置用户名,即在绿色部分输入你自己设置的用户名。
第二行:设置邮箱地址

提示:

git init这个命令会在之前创建的目录中创建一个名为.git的隐藏目录,并在其中创建一个版本库。该目录是隐藏文件,点击查看->显示隐藏目录,就能看到了,这个目录还是挺重要的,之后会详细讲解。

设置完之后,有的同学想检查一下自己设置是否成功,在此介绍两种方式

1.使用命令行

检查已有的配置信息(包含用户名和邮箱地址),使用 git config --list 命令:

git config --list

然后在图中能看到相应的用户名和邮箱地址。
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据
(此处我把邮箱地址打上了码,正常情况下是会显示的)

2.找到对应文件

对于git功能的探索与研究,代码维护,git,elasticsearch,大数据
选择用写字板打开后,可以看到,name处就是自己设置的用户名,email处就是邮箱地址。
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据
提示:
如果不想使用命令行,在此处直接修改用户名和邮箱地址也是可以的。

文件的状态

在学习完如何简单的使用Git后,我们来了解一下文件的状态,如图:
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据
此处我们选择两个进行详细介绍。

untracked:未跟踪

未跟踪,即文件在文件夹中,但没有加入到git库中,不参与版本控制。
可通过git add 使其状态变为Staged

tracked已跟踪

被纳入版本控制,分三种状态:

1.unmodified

文件入库、未修改,被修改后变为modified

2.modified

文件已修改,可通过git add进入staged状态,或通过git checkout丢弃修改,而返回到unmodified状态

3.staged

暂存状态,可通过git commit可将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为unmodified状态,或通过git reset HEAD filename 取消暂存,使文件状态变为modified

一些帮助理解的图
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据

查看文件状态的命令

可使用

git status

如图:

对于git功能的探索与研究,代码维护,git,elasticsearch,大数据
(真的好掉画质,不知道大家能不能看清我写的字……)

git status -s

这样就只显示未提交的文件

文件加入暂存区

加入与取消命令

加入:

git add

取消:

git rest 文件名
//或使用
git rm -- 文件名
//二者等价
细致的区别

git rm – cached是从stage(index,暂存区)里面删除文件,当你提交(commit)之后文件就会删除了。

git reset HEAD – file:回退暂存区里的文件(还原为HEADcommit里面该文件的状态),会撒销从上一次提交(commit)之后的一些操作。如果是对于新增文件,这两个操作是等效的。

git rm – cached作用:对于缓存来说,这个命令是从索引里删除文件。如果要删除的文件已经在仓库里了,git rm – cached将会从索引里删除该文件,但本地工作目录还会保存源代码,提交之后将会同时从仓库里删除该文件。
而git reset HEAD file(命令默认参数为–mixed)不同于文件已经在仓库中,该命令的作用是用repo(HEAD)替换index中file的版本,使file的版本回退到HEAD版本

操作过程如图
添加(加入):
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据

取消:
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据

文件提交与删除(关键的一步)

关系图:
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据

文件的提交

git commit -m ‘提交的信息’

参数m:
·-m:本次提交做了什么事,只要简单、清楚的文本说明即可,中英文都可以,重点是说清楚,能让自己和别人很快明白就行。
如果不加m参数,会进入类似vim编辑。

如果不小心忘记输入-m
会进入如下界面:

对于git功能的探索与研究,代码维护,git,elasticsearch,大数据

此时可以按Esc然后输入
:wq!
即可回到刚才的页面
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据

如果正确提交后,再查看目录,会是如下画横线的显示
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据

补充说明

下面补充一些vim的命令

:q //退出

:q! //退出且不保存(:quit!的缩写)

:wq //保存并退出

:wq! //保存并退出即使文件没有写入权限(强制保存退出)

:x //保存并退出(类似:wq,但是只有在有更改的情况下才保存)

:exit //保存并退出(和:x相同)

:qa //退出所有(:quitall的缩写)

:cq //退出且不保存(即便有错误)

文件的删除

git rm 文件名

提示;
删除文件,只是删除工作目录中的文件,在版本库中文件还是存在的。删除文件会直接把这个文件放入暂存区。

恢复已被删除的文件/目录

先使用rm命令,删除项目中所有的html文件

rm *.html
ls -al

再使用git checkout命令:

git checkout index.html

提示:
需先将文件提交到暂存区/版本库里,才能使用rm和checkout 命令,不然本次删除是和git无关的
也就是说需要先使用add/commit命令

注意:

当使用git checkout命令时,Git会切换到指定的分支。
但如果后面接的是文件名或路径,Git则不会切换分支,而是把文件从.git目录中复制一份到当前的工作目录。更精准地说,这个命令会把暂存区中的内容或文件拿来覆盖工作目录中。

文件的忽略

为什么要忽略

一般我们总会有些文件无需纳入Git的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。在这种情况下,我们可以在工作目录中创建一个名为.gitignore的文件(文件名称固定),列出要忽略的文件模式。

忽略规则

此处以一个目录名为public的目录和文件名为class的文件举例

/ 表示:当前文件所在目录

忽略pubilc下的所有目录的文件
/public/*

不忽略/public/class. 这个特例的文件,意思就是class这个文件不忽略:
!/public/class

忽略具体的文件:
index.class

忽略所有的class 文件:
*.class

忽略 a.class 和 b.class这两个文件 :
[ab].class

注意:

匹配规则和linux文件匹配一样 ·
以斜杠"/“开头表示目录
以星号“*”通配多个字符
以问号”?“通配单个字符
以方括号”[]“包含单个字符的匹配列表
以叹号”!"表示不忽略(跟踪)匹配到的文件或目录

忽略步骤

a 创建.ignore文件

两种方式:
1.直接相应文件夹里创建
2.使用touch命令
touch .ignore

b 在.ignore文件内部编写规则

此处的编写可以参考上文的编写规则。

日志的操作和使用

查看日志

git log

细节

a、 上一页 按空格

b、 下一页 按b

c、 退出 按q

d、 不分页 输入命令:
git --no-paper log

参数:

–graph 查看分支合并图

–oneline 标记把每一个提交压缩到一行中

远程仓库!

我们前面介绍过了,文件从工作区经过add命令提交到暂存区中,再通过commit命令提交到本地仓库。
对于git功能的探索与研究,代码维护,git,elasticsearch,大数据

但是,日常生活中编写代码,大多是多人协作的方式,所以将代码提交到远程仓库,会更方便。

常用的Git代码托管平台

推荐一些托管平台,我也会在后面写出他们的区别,大家可自行选择。
1.GitHub
点击此处跳转至网页
2.Gitee
点击此处跳转至网页
3.GitLab
点击此处跳转至网页

github和gitee的区别:

GitHub是全英文并且用户基数多,知名的库也多,但在国内访问Github偶尔会有不稳定情况
Gitee全是中文,而且大部分用户都是国人,优秀的库相对于GitHub也少,但Gitee不会出现不稳定情况。

GitHub GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。

GitHub 于 2008 年 4 月 10 日正式上线,除了 Git 代码仓库托管及基本的 Web
管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过
350 万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。

Gitee Gitee 提供免费的 Git 仓库,还集成了代码质量检测、项目演示等功能。对于团队协作开发,Gitee
还提供了项目管理、代码托管、文档管理的服务,5 人以下小团队免费。

我个人使用的是gitee,大家选择什么就根据自己喜好和需求去选择吧~

使用步骤

注册和使用步骤可以上b站或者其他的平台自行搜索,或者看我文章底部贴上的视频链接
下文只是简单介绍

这里大致说一下:
第一步创建代码仓库(仓库的名称、仓库的简介、提交代码的邮箱等等)

第二步上传自己的代码托管到远程仓库

一张有点用处但不多的图:

对于git功能的探索与研究,代码维护,git,elasticsearch,大数据

创建远程仓库

将远程仓库与本地仓库建立联系:
使用命令:

git remote add shortname ur1

shortname:远程仓库的名字(自定义)
ur1:远程仓库的地址

查看远程仓库

如果想查看已经配置的远程仓库服务器,可以运行git remote命令。
它会列出指定的每一个远程服务器的简写。如果已经克隆了远程仓库,那么至少应该能看到origin,这是Git克隆的仓库服务器的默认名。

语法命令:
有两种方式

  git remote 

注意,该仓库必须和仓库有联系才可以

  git remote -v 

-v列出详细信息verbose

克隆远程仓库

如果你想获得一份已经存在了的Git仓库的拷贝,这时就要用到gitclone命令。
Git克隆的是该Git仓库服务上的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件。当你执行gitclone命令的时候,默认配置下远程Git仓库中的每一个文件的每一个版本都将被拉取下来。

语法结构:

  git  clone 远程仓库地址ur1 

要记住自己的用户名和密码

移除无效的远程仓库

语法命令:

git remote rm 远程仓库名字

注意:
此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库

结语

好啦,本文到此就结束了,很感谢您能看完这篇又长又有些枯燥的文章,希望您能有所收获,我们下次见~

参考资料/视频

本文参考视频

【gitee(码云)的注册和代码提交【手把手】-哔哩哔哩】

【『教程』一看就懂!Github基础教程-哔哩哔哩】

【第14讲 Git GitLab 简介使用-哔哩哔哩】文章来源地址https://www.toymoban.com/news/detail-645336.html

到了这里,关于对于git功能的探索与研究的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 对于文本生成模型的指导性和整体性研究(chatgpt生成)

    对于文本生成模型 假设输入是唯一性的,输出是概率top——k的 只是输入某段文本完全无法续写一个有目标的结果 故而输入要具有指导性和整体性 将上面的观点写成一篇学术论文 题目:对于文本生成模型的指导性和整体性研究 摘要:在自然语言处理领域,文本生成模型在近

    2024年02月09日
    浏览(52)
  • ElasticSearch-学习笔记02【ElasticSearch索引库维护】

    Java后端-学习路线-笔记汇总表【黑马程序员】 ElasticSearch-学习笔记01【ElasticSearch基本介绍】 【day01】 ElasticSearch-学习笔记02【ElasticSearch索引库维护】 ElasticSearch-学习笔记03【ElasticSearch集群】 ElasticSearch-学习笔记04【Java客户端操作索引库】 【day02】 ElasticSearch-学习笔记05【Spri

    2024年02月04日
    浏览(45)
  • 【探索Linux】—— 强大的命令行工具 P.5(yum工具、git 命令行提交代码)

    前面我们讲了C语言的基础知识,也了解了一些数据结构,并且讲了有关C++的一些知识,也学习了一些Linux的基本操作,也了解并学习了有关Linux开发工具vim 、gcc/g++ 使用,也相信大家都掌握的不错,今天博主带大家了解一下 —— yum工具以及git 命令行提交代码 , 下面话不多说

    2024年02月12日
    浏览(50)
  • git如何提交功能分支代码

    1.当你要写一个功能之前,先创建一个分支,在项目的终端输入,例如:git checkout -b login  现在我们就创建了一个login登录分支 输入git branch 可以看到我们正处在login这个分支上面 2.当你写完这个登录功能的代码后,输入git status ,查看当前状态,发现都是红色的,表示这些都

    2024年02月11日
    浏览(40)
  • 手机通话界面:对于特殊电话(如报警),增加发送定位、照相功能

    比如说,我现在报警,话务人员都会询问我在哪里。在室内还好,如果在室外,那可就傻眼了。不要说普通人,就是经过训练的人员都不知道怎么办。 于是我想,可以改进通话界面,一旦检测到是报警电话: 自动发送定位。 定位发送到本地的警察网站,这样更方便。 增加拍

    2024年02月16日
    浏览(54)
  • 【上传本地代码至Gitee仓库,并配置Qt Creator的Git功能】

    将工程上传至gitee仓库进行项目管理。配置Qt Creator推拉仓库中代码。 Gitee是基于git分布式版本控制系统的国内代码托管平台,在团队进行开发协作时有利于代码的更新管理,同时其版本回退功能可以防止一些误操作导致代码发生不希望的修改。目前本人正在做一个基于Qt的项

    2024年02月04日
    浏览(91)
  • Java Spring IoC&DI :探索Java Spring中控制反转和依赖注入的威力,增强灵活性和可维护性

    💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录文章:Java Spring IoCDI :探索Java Spring中控制反转和依赖注入的威力,增强灵活性和可维护性 🎉欢迎大家点赞👍评论📝收藏⭐文章 我们一下要学习的内容都是为了实现⾼内聚低耦合来进行的 软件设计原则:⾼内聚低耦合. ⾼内聚指

    2024年04月15日
    浏览(48)
  • VS对于unity开发没有代码提示

    1.代开vs installer 查看是否有安装“ 使用unity的游戏开发 ” 2.如果你已经有了下载安装了unity,那么不需要安装unity编辑器 选择但各组件再次确认是否安装了 VS Tool for Unity ,如果没有那么安装一下。 3.是否正确设置了unity的默认编辑器  选择External Tools - External Script Editor - VS2

    2024年02月15日
    浏览(38)
  • 对于 Git 每一次提交的时间信息,什么是作者日期和提交者日期

    对于 Git 的每一次提交,在 TortoiseGit 和 IntelliJ IDEA 都可以看到这次提交的时间。但很多人不知道的是,Git 实际上对每一个提交的时间分为两个:作者日期和提交者日期。 作者日期(author date):这指的是最开始提交时,所产生的提交文件上的日期 提交者日期(committer date):

    2024年02月05日
    浏览(48)
  • 使用单元测试提高代码质量与可维护性

    目录 一、单元测试的必要性 二、流行的测试框架 三、测试框架的用法 四、学习编写单元测试的建议 总结 随着软件开发的快速发展,单元测试作为一种自动化测试的方式,越来越受到重视。它可以有效地帮助开发人员在开发过程中发现和修复代码中的错误,从而提高代码的

    2024年02月04日
    浏览(85)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包