最详细GIT学习笔记

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

1. Git简介

1.1. Git介绍

Git(读音为/gɪt/) 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

1.2. 主流的版本控制器

  • Git(分布式版本控制,没有中央服务器,可以离线提交)
  • SVN(集中式版本控制,有中央服务器,不可以离线提交)
  • CVS
  • VSS
  • TFS
  • Visual Studio Online

版本控制产品非常多,现在影响力最大且使用最广泛的Git.

1.3. Git和CVS、SVN的区别

Git是分布式版本控制系统,代码提交是在本地的(如此速度就快),当然生成补丁(patch)然后push到远程服务器上是需要联网的。 CVS、SVN是集中式版本控制系统,代码提交都是提交到远程服务器上,是需要一直联网的(如此速度就慢)(这里的一直联网不是说你写代码的时候要联网,而是说你提交代码的时候必须联网;但是git不同,git提交代码是本地的不需要联网,生成patch后push patch才需要联网,相当于svn的远程的集中服务器对于git来说,这个集中的远程服务器就在本地)

CVS、SVN这样的集中式版本控制系统,它的完整代码仓库(代码仓库不仅仅只包含了代码,还包含各个历史版本的信息等)在中心服务器上,一旦这个中心服务器挂了,也就是完整的代码仓库挂了,虽然你本地可能之前有从中心服务器上取得过代码,但是那些历史版本信息都没有了,而且你也无法再提交代码。 Git不同,Git没有中心服务器的概念,每一个git客户端(git节点)都含有一个完整的代码仓库(前提是你之前从远程git仓库fetch过代码),所以那些历史版本信息都在你本机上,假如哪一个git节点挂掉了,随意从其他git节点clone一个代码仓库过来就ok了, 那些原来的代码、版本信息之类的都还是完整的(当然如果你在这个挂掉的git节点上新增的代码是没有掉了的)

综上,Git的每一个节点(第一次从远程git仓库取得代码后,该git节点就是一个完整的代码仓库)相当于SVN的中心服务器,都包含完整的代码仓库。

1.4. Git的优点

  1. 适合分布式开发,强调个体。
  2. 远程服务器(公共的)压力和数据量都不会太大。
  3. 速度快、灵活。
  4. 任意两个开发者之间可以很容易的解决冲突。
  5. 离线工作,近乎所有操作都是本地执行。(当然提交远程服务器或者从远程服务器fetch代码是要联网的)。

2. Git下载与安装

可以从官方网站上找到对应自己的操作系统的GIT版本进行下载,下载网址:https://git-scm.com/downloads

最详细GIT学习笔记,git,学习,笔记

下载之后开始安装:

1.下一步

最详细GIT学习笔记,git,学习,笔记

2.选择安装路径,next

最详细GIT学习笔记,git,学习,笔记

3.选择需要安装的组件,这里默认即可,next

最详细GIT学习笔记,git,学习,笔记

4.选择菜单文件夹,这里默认即可,next

最详细GIT学习笔记,git,学习,笔记

5.选择默认编辑器,默认推荐的即可,next

最详细GIT学习笔记,git,学习,笔记

6.设置“新存储库中初始分支的名称”,默认推荐即可,next

最详细GIT学习笔记,git,学习,笔记

  1. 设置path环境:

Use Git from Git Bash only:只通过GitBash使用Git

Git from the command line and also from 3rd-party software:使用windows系统的命令行工具(默认这项即可)

UseGit and optional Unix tools from the Command Prompt:二者都有,但是会罩层工具覆盖警告

最详细GIT学习笔记,git,学习,笔记

  1. 选择安全密钥,默认推荐即可,next

最详细GIT学习笔记,git,学习,笔记

9.选择HTTP传输后端,使用默认推荐OpenSSL库即可,next

最详细GIT学习笔记,git,学习,笔记

  1. 配置结束转换行,默认windows即可,next

第一项:(windows系统选择)检查换行格式将windows格式的换行转换为unix格式的进行提交

第二项:(Unix系统安装选择)检查换行格式将原来不管什么格式的换行一律转换为unix格式的换行在进行提交

第三项:(非跨平台项目安装选择)不进行格式转换,检查出什么格式就提交什么格式

最详细GIT学习笔记,git,学习,笔记

11.配置终端模拟器以使用Git Bash ,选择默认即可,next

最详细GIT学习笔记,git,学习,笔记

  1. 选择git pull的默认行为,默认即可,next

最详细GIT学习笔记,git,学习,笔记

13.选择git辅助工具,默认即可,next

最详细GIT学习笔记,git,学习,笔记

  1. 配置附加选项,默认即可,next

最详细GIT学习笔记,git,学习,笔记

15.执行安装

最详细GIT学习笔记,git,学习,笔记

16.安装成功

最详细GIT学习笔记,git,学习,笔记


17右键菜单,选择

最详细GIT学习笔记,git,学习,笔记

  1. 进入编辑页面,即可进行GIT操作

最详细GIT学习笔记,git,学习,笔记

3. 使用Git进行版本控制

3.1. 仓库分区

Git本地有三个工作区域:工作目录(Working Directory),暂存区(Stage/Index),资源库(Repository或Git Directory)。如果再加上远程的git仓库(Remove Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:

最详细GIT学习笔记,git,学习,笔记

Workspace:工作区,就是平时存放项目代码的地方

Index/Stage:暂存区,用于临时存放你的改动,事实上它是一个文件,保存即将提交的列表信息

local Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里有你提交到所有版本的数据,其中HEAD指向最新放入仓库的版本

Remote Repository:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

以上四个工作区其实跟我们挂钩的只有工作区和远程仓库,暂存区和仓库区我们只需要通过命令操作即可

3.2. 初始配置

首次使用git先需要配置以下内容:

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

因为git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。注意git config命令的–global参数,用了这个参数,表示你这台机器上所有的git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。然后在本机会生成一个.gitconfig文件,里面包含了user.name和user.email的信息。

如果不加–global参数就只对当前项目有效。但通常都使用–global,避免每次都要重新配置。

3.3. 常用指令

3.3.1. 新建代码库

# 在当前目录新建一个Git代码库
$ git init # 新建一个目录,将其初始化为Git代码库

进入项目目录(注意这个前提)并输入:git init
该命令将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是
Git 仓库的骨干。但是,在这个时候,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪。

最详细GIT学习笔记,git,学习,笔记

3.3.2. 查看代码仓库状态

在执行其他操作之前,先来看一下状态:

$ git status

最详细GIT学习笔记,git,学习,笔记

在Git中,分支是项目的一个版本,从这里的输出我们可以知道,我们位于分支的,master

我们每次查看项目的状态时候,输出的都是我们位于分支master上,接下里的输出表明,我们将进行初始项目的日叫,提交是项目在特定时间的快照。

Git指出了项目中未被跟踪的文件,因为我们还没有告诉他要跟踪那些文件,接下里我们被告知没有任何东西添加到当前提交里面,但我们可能需要将为跟踪的文件加入仓库

3.3.3. 将文件加入到仓库

# 添加指定文件到暂存区
$ git add [file1] [file2] ...# 添加指定目录到暂存区,包括子目录
$ git add .  # 将所有修改添加到暂存区   经常用此命令

命令 git add . 将项目中未被跟踪的文件都加入到仓库中,它不提交这些文件,而只是让git开始关注他们。现在我们检查这个项目的状态,发现Git找到了需要提交的文件的一些修改,标签 new file 表示这些文件是新加入的。

3.3.4. 执行提交

# 提交暂存区到仓库区
$ git commit -m [message]    # 提交暂存区的指定文件到仓库区

最详细GIT学习笔记,git,学习,笔记

我们在执行 git commit -m "Started project" 的时候以拍摄项目的快照。标志-m 让Git接下里的消息(“Started project")记录到项目中的历史记录中,输出表明我们在分支master 上,而且有一个文件被修改了

简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

3.3.5. 查看提交历史

# 显示当前分支的版本历史
$ git log    # 显示commit历史,以及每次commit发生变更的文件

最详细GIT学习笔记,git,学习,笔记

我们每次提交的时候,Git都会生成一个包含40字符的独一无二的引用ID,它记录提交是谁执行的,提交的时间以及提交的指定消息,并非在任何情况下你都需要所有的这些信息,因此Git提供一个选项,让我们能够打印提交历史条目的更简单的版本。

标志 --pretty=oneline 指定显示一项最重要的信息,提交的引用ID以及为提交记录的信息

最详细GIT学习笔记,git,学习,笔记

3.3.6. 第二次提交

我们在Helloworld.java文件中加入一行代码

int num = 100;

查看状态

最详细GIT学习笔记,git,学习,笔记

此处显示我们对Helloworld. java文件做了修改,但是并没有提交,所以接下来我们提交所做操作,并在查看操作。

这一步,我们执行了提交,并且在执行命令git commit 的时候指定了标志-am.标志-a 让Git 将仓库中所有修改了的文件都加入当前提交中,(如果我们两次提交之间加入了新文件,我们执行get add . 操作,将新文件加入到仓库中)标志-m让Git咱提交历史中记录一条消息。

最详细GIT学习笔记,git,学习,笔记

查看状态

最详细GIT学习笔记,git,学习,笔记

这时我们再查看项目的状态的时候,发现工作目录也是干净的,最后我们发现提交历史中包含两个提交。

3.3.7. 撤销修改最近版本

我们在Helloworld.java文件中加入一行代码

System.out.println(num);

查看状态

最详细GIT学习笔记,git,学习,笔记

Git注意到我们修改了Helloworld.java,我么可以提交所做的修改,但是我们不提交所做的修改,而要恢复到最后一个提交,为此我们不对Helloworld.java执行任何操作,不删除刚添加的代码行,也不使用文本编辑器的撤销功能,而是在终端会话中执行如下命令:

# 撤销修改
$ git checkout .    # 能够让我们恢复到以前的任何提交

最详细GIT学习笔记,git,学习,笔记

查看状态,同时查看文件中的代码也被撤销了

最详细GIT学习笔记,git,学习,笔记

3.3.8. 撤销修改以前版本

我们可以检查提交历史中的任何一次提交,而不仅仅是最后一次,为此我们可以在命令git check末尾指定该提交的引用ID的前6个字符(而不是局点)。通过检查出以前的提交,我们可以对其进行审核么然后返回到最后一次提交,或者放弃最近所做的工作,并选择以前的提交。

最详细GIT学习笔记,git,学习,笔记

如果要恢复到“Started project”需要以下几步:

首先,我们查看了状态,确认我们在分支master上,查看历史提交时,我们看见了两个提交。

然后,我们执行了命令 git reset --hard ,并在其指定了要永久性的恢复到的提交的引用ID的前6个字符。

接下来,我们在次查看状态,我们在分支master上,并且没有需要任何修改,

最后,我们再次查看提交的历史状态时候,我们发现我们处于重新开始的提交中,同时文件中的代码也恢复到最初状态。

最详细GIT学习笔记,git,学习,笔记

3.3.9. 删除仓库

有时候,仓库的历史纪录被我们搞乱了,而我们又不知道如何恢复,这时候我们首先应该考虑百度一下,看看自己的问题出在那里,如果无法恢复,而且参与项目的人只有自己,可以继续使用这些文件,但需要将这些项目的历史纪录删除——删除.git 这不会影响任何文件的当前状态,而只会删除文件的所有提交,因此我们将无法检查出项目的其他任何状态。

为此,可以打开一个文件浏览器,并将目录.git 删除,也可以通过命令完成这个任务。但是这样做过我们需要创建一个新的仓库,以重新对这些修改进行跟踪。

$rm -rf .git  #-rf 强制删除文件

最详细GIT学习笔记,git,学习,笔记

查看状态结果告诉我们这不是一个仓库,(git用来跟踪仓库的信息都存储在文件夹.git中,因此删除该文件夹也将会删除整个仓库),但是原来的Helloworld.java源文件不会被删除,可以继续构建新仓库进行版本控制。

4. Gitee代码托管平台

Gitee 是开源中国社区2013年推出的基于 Git 的代码托管服务,目前已经成为国内最大的代码托管平台,致力于为国内开发者提供优质稳定的托管服务。 它可以让你和其他人一起在远程或本地项目上进行协作。

官方网站:www.gitee.com/

本地仓库: 本机上某个存放代码的仓库。

远程仓库: 码云服务器上的代码仓库。

重要提醒:

当我们在本地操作(新增、删除、修改)文件、目录时,并将其提交(commit),只是提交到了本地仓库。注意:所有的改动只是放到了本地仓库,并没有上传到服务器的远程仓库。

当将本地仓库与远程仓库关联起来后,即可将本地仓库中的对代码的改动上传到(push)远程仓库,也可从远程仓库将对代码的代码改动下载(pull)下来。

4.1. 创建SSH key

由于本地Git仓库和Gitee仓库之间的传输是通过SSH加密的,所以需要先进行如下设置:在Git Bash下输入如下指令,成功后在用户主目录下,寻找.ssh目录,并在这个目录下找id_rsa和id_rsa.pub这两个文件,这两个就是 SSH Key 的秘钥对,id_rsa 是私钥,不能泄露出去,id_rsa.pub 是公钥,用于后续步骤,命令如下:

$ ssh-keygen -t rsa -C "zhangsan@163.com"

最详细GIT学习笔记,git,学习,笔记

最详细GIT学习笔记,git,学习,笔记

4.2. 登录Gitee账号

没有Gitee账号的,可以去官网注册一个。注册登录后,在个人主页—>个人设置---->SSH公钥,将上述步骤中的 id_rsa.pub 里面的内容复制粘贴到 3 号位置,在2号位置任意添加一个标题即可。

最详细GIT学习笔记,git,学习,笔记

4.3. 在Gitee中创建远程仓库

登录Gitee,点击右上角的 + 号,再点击新建仓库

最详细GIT学习笔记,git,学习,笔记

填写仓库名称,下面的路径默认,是否开源根据自己的需要,然后按照图中所示勾选

最详细GIT学习笔记,git,学习,笔记

创建仓库成功会有命令提示,可以按照命令提示进行项目上传

最详细GIT学习笔记,git,学习,笔记

按照以上指令进行文件上传

最详细GIT学习笔记,git,学习,笔记

最详细GIT学习笔记,git,学习,笔记

4.4. 克隆远程仓库项目

先创建远程库,从远程库克隆项目,通常指令如下:

#HTTP方式
$git clone https://gitee.com/yichunlinNeusoft/helloworld.git
#SSH方式
$git clone git@gitee.com:yichunlinNeusoft/helloworld.git

最详细GIT学习笔记,git,学习,笔记

最详细GIT学习笔记,git,学习,笔记

4.5. 在Eclipse中配置Git

首次从远程仓库上向eclipse克隆项目,可以选择引用项目import中的GIT选项

最详细GIT学习笔记,git,学习,笔记

选择“克隆”clone选项

最详细GIT学习笔记,git,学习,笔记

填写location(从gitee中直接复制),同时填写gitee的用户名和密码进行验证

最详细GIT学习笔记,git,学习,笔记

选择对应分支,这里我们就选主分支master

最详细GIT学习笔记,git,学习,笔记

配置域名(默认)

最详细GIT学习笔记,git,学习,笔记

选择引入项目的方式(如果有空项目导入就选第一项)

最详细GIT学习笔记,git,学习,笔记

项目导入成功

最详细GIT学习笔记,git,学习,笔记

4.6. 在Eclipse中使用Git

在项目开发阶段,我们需要不断对远程仓库中的项目进行提交和下载,这是可以在eclipse中直接进行的,方法在右键菜单中,有Team选项,可以自己需要的功能进行选择

最详细GIT学习笔记,git,学习,笔记文章来源地址https://www.toymoban.com/news/detail-788357.html

到了这里,关于最详细GIT学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Git学习笔记(第3章):Git常用命令

    目录 3.1 设置用户签名 3.2 初始化本地库 3.3 查看本地库状态 3.4 添加暂存区 3.5 提交本地库 3.6 历史版本 3.7 修改文件 3.8 版本穿梭 小结 命令 作用 git config --global user.name 用户名 设置用户签名 git config --global user.email 邮箱 设置用户签名 git init 初始化本地库 git status 查看本地库状

    2024年01月20日
    浏览(54)
  • Git命令学习及Git 与 GitHub 的绑定实现学习笔记

    目录 一.Git常用命令及创建本地仓库步骤  二.利用 SSH 完成 Git 与 GitHub 的绑定 三.本地没有git仓库,拉取github仓库代码到本地并push代码到远程仓库步骤 四.本地有仓库,拉取github仓库代码到本地并push代码到远程仓库步骤 一.Git常用命令及创建本地仓库步骤 1.首先使用cd命令进入

    2024年02月04日
    浏览(49)
  • Git学习笔记(第5章):Git团队协作机制

    目录 5.1 团队内协作 5.2 跨团队协作         Git进行版本控制都是在本地库操作的。若想使用Git进行团队协作,就必须借助代码托管中心。 问题引入 :成员1(大佬)利用Git在宿主机上初始化本地库,完成代码的整体框架,并添加到暂存区和提交本地库。此时,若成员1想借

    2024年01月20日
    浏览(48)
  • Learn Git Branching 学习笔记(Git远程仓库篇)

    目录 一、Git远程仓库篇 1.git clone 在本地创建一个远程仓库的拷贝        2.远程分支 3.git fetch 4.git pull      5.模拟团队合作 6.git push 7.远程库提交历史的偏离     8.远程服务器拒绝!(Remote Rejected) Git的高级话题集合在上一篇文章中Learn Git Branching 学习笔记(高级话题篇)_流年

    2024年02月13日
    浏览(51)
  • Git && Docker 学习笔记

    注意:该文章摘抄之百度,仅当做学习笔记供小白使用,若侵权请联系删除! 目录 列举工作中常用的几个git命令? 提交时发生冲突,你能解释冲突是如何产生的吗?你是如何解决的? git的4个区域及转换 如果代码出现bug,你们是如何解决的? git rebase的作用? 列举工作中常用的

    2024年01月23日
    浏览(39)
  • git深入学习笔记

    当初始化仓库的时候,会创建一个.git文件夹,其中包含以下内容: hooks 文件夹 (包含客户端服务端的钩子脚本,如pre-push,pre-merge) info 文件夹 (包含一个全局性排除文件) object 文件夹 (存储所有数据内容) refs 文件夹 (存储指向分支的提交对象的指针) config 文件 (包

    2024年01月21日
    浏览(34)
  • 学习笔记-Git

    在commit和push的时候因为网络太慢了中途强行关闭了进程,而push的内容因为文件过大导致无法正常push 按照原本的流程在push的时候会提示失败,并且需要在解决了大文件之后重新push 而因为中途中断了,git缓存中已经记录了该文件的信息 进而导致在下一次push的时候即使已经处

    2024年02月22日
    浏览(30)
  • 学习笔记(四):git

    又来了!主要还是自己太菜了,什么都需要记录一下。本次内容主要是git和gitea的安装使用。 1、下载官网:Git - Downloads (git-scm.com)  2、找到已下载的安装包文件,点击安装    3、安装就默认下一步即可,在安装目录选择中可根据个人偏好修改,以下是安装完成的几个标志  

    2024年02月03日
    浏览(33)
  • git学习使用笔记

    一、git组成结构图 工作空间:用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。 本地索引:保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。有时候也被称作“索引”,不过一般说法还是叫

    2024年02月11日
    浏览(65)
  • Git学习笔记4

    GitHub是目前最火的开源项目代码托管平台。它是基于web的Git仓库,提供公有仓库和私有仓库,但私有仓库是需要付费的。 到Github上找类似的项目软件。 GitLab可以创建免费的私有仓库。 GitLab是利用 Ruby开发的一个 开源的版本管理系统, 实现一个自托管的Git项目仓库,可通过

    2024年02月07日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包