• 手把手带你安装和使用 Git


    前言

    Git 是一种分布式版本控制软件,于 2005 年开发,作为一种工具,通过促进程序员之间的协调来简化 Linux 内核的开发。如今,Git 已成为世界上最流行的版本控制软件之一。

    Git 可以从命令行界面使用,并允许跟踪任何数据集的更改。Git 软件的优势在于其高速、数据完整性和工作流支持。使用 Git,放置在任何设备上的每个数据文件夹都是一个真正的“存储库”,其中包含历史记录和跟踪所有更改的可能性。

    本指南将解释如何在主要 Linux 发行版上安装和使用 Git,主要参考 Ubuntu 18.04

    首先,通过 SSH 连接连接到您的服务器。如果您还没有这样做,建议按照我们的指南使用 SSH 协议进行安全连接。如果是本地服务器,请转到下一步并打开服务器的终端。

    安装 Git

    更新分发存储库并开始通过 apt-get 安装 Git

    $ apt-get update && apt-get install git
    

    该过程完成后,将安装 Git。要验证其成功安装和软件版本,请使用--version参数:

    $ git –version
    

    最后,要开始使用Git,请配置将与您创建的每个包关联的用户信息(姓名和电子邮件地址):

    $ git config --global user.name "Name Surname"
    
    $ git config --global user.email "username@domain.com"
    

    下面重点介绍软件的各种功能,报告每个命令的语法。这些不同的功能已经在 Ubuntu 上进行了测试,尽管它们对任何其他 Linux 发行版都有效。

    初始化工作区

    Git 的主要目的是鼓励给定项目的多个工作流之间的协作。因此,首先要做的是初始化一个工作空间,创建一个空的本地“存储库”或远程获取一个。

    在第一种情况下,要创建或重新初始化新的“存储库”,请使用init命令:

    $ git init
    

    此命令将创建一个.git文件夹,其中包含repository所需的所有文件。该文件夹将包含构成要跟踪的项目的所有文件。所有新文件最初都不会被跟踪,也就是说它们不会被跟踪。这意味着加载快照时不会考虑它们。

    如果您想开始跟踪文件,请使用add命令,然后是commit,或简要说明您所包含的内容:

    $ git add <FilePath/FileName>
    
    $ git commit -m ‘<Description>

    在下图 中,一个新的repository的初始化示例和一个包含FileTestA文件的示例,以及显示来自终端报告操作成功的输出。
    在这里插入图片描述
    但是,如果您想为已经存在的repository做出贡献,请使用clone命令。使用此命令,Git 会收到指定服务器上存在的所有项目文件版本的副本:

    $ git clone <URL> <Destination_Folder>
    

    代替 指定下载包的地址。而不是 而是在适当的情况下指示保存下载文件的路径和文件夹。如果您不指定任何内容,这些文件将保存在Home文件夹中。

    至于 URLGit 可以使用多种传输协议来下载“存储库”:

    • · Git 协议(git://);

    • HTTP 协议(​​http://https://);

    • SSH 协议 (ssh: //);

    • 用户和服务器(用户名@服务器:/path.git)。

    查看git状态

    工作簿中的每个文件都可以具有untrackedtrackedunmodifiedmodified的状态。

    如上一段所示,具有repository状态的文件是工作目录中不存在于快照中的所有文件(在创建新的repository时)。

    另一方面,在克隆现有的repository时,所有下载文件的基本状态都是tracked。因此,这些文件也可能在下载后未编辑的情况下是unmodified的,或者在自上次提交后发生更改的情况下是modified

    要检查文件的状态,请使用status命令:

    $ git status
    

    下图显示了终端的屏幕截图,其中已经初始化了一个新项目、添加了一个文件并创建了第一个提交。通过使用status命令,终端指定没有要更新的修改文件。从绿线开始,修改文件后,再次执行status命令。

    在这里插入图片描述

    新修改的文​​件现在出现在标题Changes not staged for commit下,这意味着跟踪的文件在工作簿中发生了更改,但尚未出现在舞台上。

    因此,将有可能以两种不同的方式进行:

    • 更新舞台上的文件(重复跟踪过程,即需要git add命令);

    • 放弃更改(使用git checkout )。

    假设我们想通过运行git add命令并重复git status来评估它的状态来暂存刚刚编辑的文件。
    在这里插入图片描述
    然后该文件将被修改,但已准备好提交(图 3 中的绿色矩形)。如果在提交之前对文件进行了进一步修改并检查了其状态,则两者都将被指示为ready-to-commit文件和尚未上台的文件(图 3 中的红色矩形)。

    发生这种情况是因为舞台上的文件是没有修改的文件(如果现在执行commit命令,将提交的文件),而外部文件是刚刚修改的文件。要提交此进一步修改,请再次添加它(图 3 中的蓝色矩形)。

    忽略某些文件

    如果您不希望自动添加某些文件,例如日志文件,请创建一个.gitignore文件,其中包含要排除的文件列表。

    要自动包含某种类型的模式,而不是列出要忽略的所有单个文件,包括所有文件夹并使用特殊字符。模式的规则是:

    • 空行或以#开头的行将被自动忽略;

    • 斜线/可用于表示子文件夹;

    • 利用 ! 拒绝花纹的字;

    • 可以使用全局模式。

    glob 模式是一种用于表示一组字符串的语法。最常见的是:

    • 星号 (*) 表示任何字符串(通常用于标记具有特定扩展名的所有文件);
    • 问号 (?) 表示任何字符,方括号 ([...]) 用于指定一系列字符或数字。

    更改提交

    一旦文件被放置到暂存区(通过git add命令)提交更改。提交用于记录保存在您的暂存区中的快照。

    任何没有放在暂存区上的东西,都不会在提交中,但当然会在本地文件夹中保持修改状态。

    最简单的提交方法是使用以下命令:

    $ git commit
    

    通过这样做,将打开显示git状态命令的最后输出且第一行为空白的文本编辑器:在这里可以输入您的提交消息,以便适当地指示您正在进行的更改。

    你刚刚创建了你的第一个提交!在结束本指南之前,将显示进一步删除或修改文件的过程。

    删除文件

    要删除 Git 文件,不仅要从跟踪的文件中删除它,还要再次重复提交以保存更改。实际上,只需从文件夹中删除文件,生成的文件就会显示为不在舞台上的文件。

    通过使用命令 git rm后跟文件的路径和名称,文件的删除将被暂存并在下一次提交后完全消失:

    $ git rm <File>
    

    如果您已经修改文件并将其添加到索引中,则可以通过添加-f选项来强制删除它:

    $ git rm -f <File>
    

    但是,如果您只想删除错误插入暂存区的文件,同时将其保留在磁盘上,则可以使用--cached选项:

    $ git rm --cached <File>
    

    移动和重命名文件

    您可能想要做的另一件事是移动或重命名文件。这不是一个自动操作,因为 Git 没有明确地跟踪文件移动,即没有生成元数据来跟踪重命名选项。

    可以使用已知命令执行此操作,首先更改名称,然后从 Git 中删除上一个文件 (git rm),然后重新添加(git add)。

    为了避免每次重命名/移动都执行这一系列命令,Git 有自己的特定命令git mv,它同时提供与上面列出的三个相同的结果。

    完整的语法如下所示:

    $ git mv <OldPath/OldName> <NewPath/NewName>
    

    此命令提供与以下三个完全相同的结果:

    $ mv <OldPath/OldName> <NewPath/NewName>
    
    $ git rm <OldPath/OldName>
    
    $ git add <NewPath/NewName>
    

    通过这样做,文件将被重命名移动,并且已经在暂存区,准备提交。要验证操作是否成功,请运行git status命令,该命令将在更改列表中释放一个名为renamed的部分提交,其中将列出所有已更改名称或路径的文件。

    👇点击下方公众号卡片获取资料👇
  • 相关阅读:
    HTML—CSS盒子模型(Box Model)
    杭电oj 2041 超级楼梯 C语言
    李廉洋:4.24黄金看跌趋势明显,原油今日或呈震荡走势分析及策略。
    Vue3+TS版本Uniapp:封装uni.request请求配置
    Java毕业设计项目源码Java基于springboot的高校专业实习管理系统的设计和开发
    写一篇nginx配置指南
    底层码农重返创作者行列
    [leetcode hot150]第二百三十六题,二叉树的最近公共祖先
    Android App如何隐藏标题栏并修改状态栏样式
    DVWA-弱会话IDS
  • 原文地址:https://blog.csdn.net/qq_45172832/article/details/127066902