• 二、Git本地仓库基本操作——创建Git仓库、提交更新或删除文件


    1. 创建本地工作仓库

    创建本地工作仓库有两种方法:

    1. git init 在本地初始化一个git仓库
    2. git clone 直接克隆一个远程的git仓库

    方法一

    我们在其中一个目录下,点击鼠标右键,然后启动git bash。输入下面命令:

    git init
    
    • 1

    这条命令即可创建一个git仓库。

    然后再当前目录下,会创建一个 .git 的隐藏文件夹:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wt4xmwgj-1670071929515)(../picture/image-20221113231146804.png)]

    里面包含了一个git初始化仓库所必须的文件(每个文件的作用暂时还没研究),如下:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZDgvibi3-1670071929516)(../picture/image-20221113231210330.png)]

    方法二

    使用git clone命令。

    git clone 远程仓库地址
    
    # 可以重命名克隆的远程仓库名称
    git clone 远程仓库地址 新的仓库名称
    
    • 1
    • 2
    • 3
    • 4

    2. 新建、修改文件后提交更新到本地仓库

    上一篇文章介绍到,git 的工作过程其实都是围绕下面这幅图进行的:

    所以,我们初始化了仓库之后,根据这幅图进行git的一些基本命令操作。

    Git 文件的4种状态:

    1. untracked。未跟踪,表示文件不受git管理,我们新建的文件就是处于 这种状态。
    2. staged。已暂存,表示已对修改的文件做了标记,使之包含在下次要提交的文件的跟踪列表中changes to be committed
    3. committed。已提交,表示文件已经被提交到本地仓库committed
    4. modified。已修改,表示文件内容已被修改,但没有做标记changes not staged for commit

    下面我们就实例演示下这4种工作状态。

    2.1 查看工作目录下的文件状态

    git status
    
    • 1

    git status 命令用于查看仓库当前状态,显示有变更的文件。

    示例

    当工作区文件数量很多时,可以使用 -s 参数输出简短的信息,即:git status -s

    2.2 添加一个新的文件到暂存区

    git add <文件名或者目录>
    # 文件名支持通配符*的形式,比如说 *.c 就是表示工作区中所有的c文件
    # 如果是目录的话,那么会递归跟踪该目录下的所有文件
    
    • 1
    • 2
    • 3

    该命令相当于把工作区的文件,添加到了暂存区,其实就是相当于git跟踪了这个文件。

    • 文件名支持通配符*的形式,比如说 *.c 就是表示工作区中所有的c文件
    • 如果是目录的话,那么会递归跟踪该目录下的所有文件
    • git add . 相当于就是当前目录的全部文件都添加到暂存区。 . 表示当前目录, … 表示上一级目录

    示例

    2.3 提交暂存区的文件到本地仓库

    使用 git add 命令跟踪了文件之后,就可以提交更新到本地仓库了,使用如下命令:

    git commit
    
    • 1

    注意:

    1. 提交前已经设置好了用户名和邮箱
    2. 该命令只是将暂存区的内容提交到仓库,我们可以在提交前使用 git status 命令查看是否有改变没有添加到暂存区。

    我们调用这条命令的时候,都会打开 vim 编辑器,然后用户可以输入提交更改的信息,然后保存更改信息就可以提交成功了。

    但是如果我们不熟悉vim编辑器,而且提交的信息又比较简单的话,我们可以输入一条字符串来保存更改的信息。

    # 提交整个暂存区的文件
    git commit -m "<提交信息>"
    
    #只提交暂存区指定的文件
    git commit [file1] [file2] ... -m "<提交信息>"
    
    • 1
    • 2
    • 3
    • 4
    • 5

    示例

    每次提交其实相当于记录了一次快照,后面我们在任何时候都可以退回到本次状态。

    2.4 修改文件

    我们把上面新建的 test.c 文件进行修改。

    vim test.c
    
    • 1

    vim编辑器打开文件(或者使用其他编辑器都可以),修改内容:

    然后回到vim命令状态,保存退出即可。

    2.5 添加改动的文件到暂存区

    前面已经使用过 git add 命令添加文件到暂存区了,但是那个文件是新建的文件,还没有跟踪的。

    我们修改之后,查看文件状态:

    暂存修改的文件也是 git add 命令,只是前面是新的文件添加到暂存相当于跟踪了这个文件。现在是已经跟踪的文件被修改了,然后添加到暂存区。

    2.6 比较文件在暂存区和工作区的差异

    git diff
    
    • 1

    该命令可以比较在工作区(也就是我们的工作目录)中已经被修改的文件,和已经写入暂存区的文件,他们之间的差异。

    git status 命令其实可以列出哪些文件被修改了,但是不能列出文件修改的内容,而 git diff 是可以的。

    • 尚未缓存的改动:git diff ,其实就是现在是暂存区和工作区之间的差异。
    • 查看已缓存的改动: git diff --cached 或 git diff --staged ,显示暂存区和最近一次提交(commit)的差异。
    • 查看已缓存的与未缓存的所有改动:git diff HEAD
    • 显示摘要而非整个 diff:git diff --stat

    我们把上面的 test.c 文件进行修改,然后保存退出:

    查看文件状态,和改动:

    2.7 跳过暂存区直接提交更新

    我们对文件更改后,一般需要先使用 git add 命令,先添加到暂存区,然后才能使用 git commit 命令提交更新到本地仓库的。

    每次都经过 git add 这一步太过繁琐,所以我们可以使用 -a 参数来直接跳过这一步,直接提交更新,命令如下:

    # 提交整个暂存区的文件
    git commit -a -m "<提交信息>"
    
    #只提交暂存区指定的文件
    git commit [file1] [file2] ... -a -m "<提交信息>"
    
    • 1
    • 2
    • 3
    • 4
    • 5

    其实就是多了 -a 参数,下面看看示例图:

    2.8 将文件从暂存区或工作区中删除

    如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。

    所以我们必须使用 git 的命令进行删除文件。

    1、将文件从暂存区和工作区中一起删除:

    git rm <文件名>
    
    • 1

    该命令相当于把源文件也删除了。

    2、如果想把文件从暂存区域移除,但仍然保留源文件。换句话说,仅是从跟踪清单中删除,使用 –cached 选项即可:

    git rm --cached <文件名>
    
    • 1

    3、删除目录

    该命令和上面两条命令一样,指不定多了 -r 参数,表示删除目录。该命令会递归删除本目录下的所有文件和子目录。

    git rm –r <目录名>
    
    • 1

    示例

  • 相关阅读:
    安利几个堪称黑科技的电脑软件
    晚上读内核代码
    GitHub的原理及应用详解(一)
    大数据在电力行业的应用案例100讲(十九)-按钮设计与开发落地
    [附源码]java毕业设计血库管理系统
    基于SSM的园区停车管理系统的设计与实现
    spring循环依赖-不仅仅是八股文
    gin分片上传文件
    计算机毕业设计Java校园生活信息服务平台(源码+系统+mysql数据库+Lw文档)
    Unity AudioClip和PCM音频数据的转化
  • 原文地址:https://blog.csdn.net/luobeihai/article/details/128166367