Git的基础文件操作初始化查看添加提交示例教程

目录
  • 1、Git最基础的使用方式
    • (1)初始化本地版本库
    • (2)查看文件的状态
    • (3)把文件添加到暂存区
    • (4)把暂存区的内容提交到本地版本库
  • 2、总结本文用到的Git命令

1、Git最基础的使用方式

(1)初始化本地版本库

要对现有的某个项目开始使用Git管理,只需到此项目所在的根目录,执行git init命令即可。

准备一个新的Git本地版本库:

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit
$ git init
Initialized empty Git repository in J:/git-repository/learngit/.git/

说明:初始化Git仓库后,在当前目录下会出现一个名为.git的目录,所有Git需要的数据和资源都存放在这个目录中。

不过目前,仅仅是按照既有的结构框架,初始化好了Git仓库中所有的文件和目录,但我们还没有开始跟踪管理项目中的任何一个文件。

(2)查看文件的状态

使用git status命令进行查看。

进入本地版本库查看工作区、暂存区中文件的状态。

# 执行`git status`命令
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
# 在主分支上工作
On branch master
# 尚无提交文件,指的是本地库中没有提交过任何文件。
No commits yet
# 无需提交(可创建/复制文件并使用“git add”进行跟踪)
# 无需提交指的是,暂存区中没有任何可提交的文件
# 追踪文件,就是让Git管理该文件。
nothing to commit (create/copy files and use "git add" to track)

(3)把文件添加到暂存区

1)创建文件后查看工作区、暂存区中文件的状态。

我们在仓库目录中创建一个readme.txt文件后,在执行git status命令。

# 创建readme.txt文件
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ touch readme.txt
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ ll
total 0
-rw-r--r-- 1 L 197121 0  4月  4 00:38 readme.txt
# 查看工作区、暂存区状态
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
# 尚无提交文件,指的是本地库中没有提交过任何文件。
No commits yet
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        readme.txt	# 文件名为红色
nothing added to commit but untracked files present (use "git add" to track)

说明:

Untracked files:readme.txt

表示发现未追踪的文件readme.txt

use "git add <file>..." to include in what will be committed

表示对readme.txt文件,你可以使用git add 命令,将新建文件添加到暂存区。

nothing added to commit but untracked files present (use "git add" to track)

表示你没有添加任何内容到暂存区,但是存在未追踪的文件,可使用“git add”命令进行追踪。

2)将工作区的文件添加到暂存区。

执行git add命令,将readme.txt文件添加到暂存区。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git add readme.txt
warning: LF will be replaced by CRLF in readme.txt.
The file will have its original line endings in your working directory

说明:

warning: LF will be replaced by CRLF in readme.txt.

The file will have its original line endings in your working directory

  • 警告:readme.txt文件中的换行符格式会被替换,CRLF替换LF。
    在我们安装Git的第8步时,所选择的选项。这是Git底层的东西,不用我们控制的。
  • 但是该文件在你的工作目录中,还是保存原始文件的换行符格式。
  • LF是Linux系统下的换行符,而CRLF是Windows系统下的换行符。由于我们的文件创建于Linux系统下(Git Bash中创建),而保存中Windows系统中,所以文件中的行结束符要使用Windows下的CRLF格式换行。
  • 以上两行就是一个提示作用,对我们的操作没有实际影响。

3)再次查看工作区、暂存区状态。

执行git status命令查看工作区、暂存区状态。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
No commits yet
Changes to be committed:
  (use "git rm --cached &lt;file&gt;..." to unstage)
        new file:   readme.txt	# 文件名为绿色

说明:

Changes to be committed: new file: readme.tx

所做更改:新建了readme.txt文件

use "git rm --cached <file>..." to unstage

提示你可以适用使“git rm --cached <file> ...”命令,
把文件从暂存区中撤回到工作区。

总结:

只要在"Changes to be committed"这行下面显示的文件,就说明是已暂存状态。

如果此时提交,那么该文件此时此刻的版本,将被留存在历史记录中。

git add命令后面可以指明要跟踪的文件或目录路径。

如果是目录的话,就说明要递归跟踪该目录下的所有文件。(其实git add命令的潜台词就是把目标文件快照放入暂存区域,同时未曾跟踪过的文件标记为已跟踪。)

4)将文件从暂存区撤回到工作区。

执行git rm --cached命令,将readme.txt文件从暂存区撤回到工作区。

并执行git status命令查看工作区、暂存区状态。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git rm --cached readme.txt
rm 'readme.txt'
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
No commits yet
Untracked files:
  (use "git add &lt;file&gt;..." to include in what will be committed)
        readme.txt	# 文件名为红色
nothing added to commit but untracked files present (use "git add" to track)

可以看到结果,readme.txt文件又成为了一个未被Git追踪的文件。

(4)把暂存区的内容提交到本地版本库

当暂存区域已经准备妥当可以提交时,在此之前,请一定要确认还有什么修改过的,或新建的文件还没有git add到暂存区,否则提交的时候不会记录这些还没暂存起来的变化。

所以,每次准备提交前,先用git status查看下,需要提交的文件是不是都已暂存起来了,然后再运行提交命令git commit -m '备注信息'。

1)将文件添加到缓存区并提交到本地版本库。

readme.txt文件加入到暂存区,并执行git commit -m '本次提交的说明',将readme.txt文件提交到本地版本库。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git add readme.txt
warning: LF will be replaced by CRLF in readme.txt.
The file will have its original line endings in your working directory
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git commit readme.txt -m 'My first commit.new file readme.txt'
warning: LF will be replaced by CRLF in readme.txt.
The file will have its original line endings in your working directory
[master (root-commit) e84b93b] My first commit.new file readme.txt
 1 file changed, 1 insertion(+)
 create mode 100644 readme.txt

重点说明最下面三行内容:

master:表示master(主干)分支。

root-commitroot表示根,意思是该版本库的第一次提交。

e84b93b:提交操作的版本号概要。

My first commit.new file readme.txt:本次提交的说明信息。

1 file changed:一个文件被修改。

1 insertions(+):增加了1行内容,+号表示增加,-号表示减少。

create mode 100644 readme.txtreadme.txt文件创建模式为100644
100代表regular file(普通文件),644代表文件权限。

提示:提交时记录的是放在暂存区域的快照。

即:每一次执行提交操作时,都是对项目作一次快照,以后可以回到这个状态,或者与这个状态进行比较。

2)将文件提交到本地版本库后工作区、暂存区状态。

执行git status命令查看工作区、暂存区状态。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
# 暂存区中没有可提交的内容
# 工作目录和本地版本库是一样的,没有修改、新建等操作。
nothing to commit, working tree clean

3)修改文件内容后查看工作区、暂存区状态。

修改readme.txt文件内容后,再执行git status命令查看工作区、暂存区状态。

# 修改文件内容
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ echo "git world" &gt;&gt; readme.txt
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ cat readme.txt
hello git world
git world
# 查看工作区、暂存区状态。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Changes not staged for commit:
  (use "git add &lt;file&gt;..." to update what will be committed)
  (use "git restore &lt;file&gt;..." to discard changes in working directory)
        modified:   readme.txt	# 文件名为红色
no changes added to commit (use "git add" and/or "git commit -a")

说明:

  • Changes not staged for commit:modified: readme.txtreadme.txt文件被修改,但是没有添加到暂存区
  • use "git add <file>..." to update what will be committed表示对readme.txt文件,你可以使用git add <file>命令,
    将文件更新添加到暂存区。
    和第(2)步的
    use "git add <file>..." to include in what will be committed是有一点差别的。
  • use "git restore <file>..." to discard changes in working directory表示可以通过git restore <file>...命令,放弃工作目录中文件的更改。
    就是还原文件。Git早期版本该命令为git checkout --<file>...
  • no changes added to commit (use "git add" and/or "git commit -a")表示你没有添加要提交的更改,
    and/or表示你可使用“git add”把变更文件添加到暂存区,
    在通过"git commit -a"提交到本地版本库,
    你也可以通过"git commit -a"直接把变更的文件提交到本地版本库。
    注意使用git commit -a命令用加文件名。

4)把修改后的文件提交到暂存区。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git add readme.txt
warning: LF will be replaced by CRLF in readme.txt.
The file will have its original line endings in your working directory
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged &lt;file&gt;..." to unstage)
        modified:   readme.txt	# 文件名为绿色

说明:

Changes to be committed: modified: readme.txt

readme.txt的修改已被Git追踪到

use "git restore --staged <file>..." to unstage

你可以用git restore --staged <file>...命令,
将文件从暂存区撤出,但不会撤销文件的更改。

5)将修改过后的文件提交到本地版本库。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git commit readme.txt -m 'modified readme.txt'
warning: LF will be replaced by CRLF in readme.txt.
The file will have its original line endings in your working directory
[master e704334] modified readme.txt
 1 file changed, 1 insertion(+)

可以看到,master后没有 (root-commit)了,因为根提交只有一次。

新创建的文件先添加到暂存区,然后添加到本地版本库。

而已经提交到本地版本库的文件,修改了,可以按照上面操作,也可以直接提交到本地版本库。

2、总结本文用到的Git命令

序号 Git命令 说明
1 git init 初始化本地版本库。
2 git status 查看当前工作区和暂存区文件的状态。
3 git add <file>... 可以将文件添加到暂存区。
4 git commit -m ' ' 提交更新。

以上就是Git的基础文件操作初始化查看添加提交示例教程的详细内容,更多关于Git基础文件操作初始化查看添加提交的资料请关注我们其它相关文章!

(0)

相关推荐

  • Git的配置及文件传输方法图文详解

    首先要下载安装git相关软件,在将git配置到idea中. 1.下载相关插件 2.配置git安装包中的gie.exe路径 3.配置git安装包中的bash.exe路径 4.登录git账户 5.添加git本地仓库 6.配置Git本地仓库路径 7.Java代码上传 先选中要上传的项目如下图操作 8.克隆Java程序 到此这篇关于Git的配置及文件传输方法图文详解的文章就介绍到这了,更多相关git文件传输内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • Git用户签名的修改取消及优先级拓展教程

    目录 1.修改用户签名 2.取消用户签名 3.用户签名的优先级 4.总结本文用到的Git命令 1.修改用户签名 其实很简单,就是重新执行git config命令,换个用户名和邮箱地址就可以了,新配置的内容会覆盖之前配置的内容,达到了用户签名的修改. 以系统用户为例: # 查看系统级别的用户配置 L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master) $ git config --list --system diff.astext

  • git用户自定义变量查看修改及调用教程详解

    目录 1.变量定义 2.变量调用 3.变量的修改 4.查看变量 (1)-u选项说明: (2)-x选项说明: (3)set命令说明: 小结: 5.变量删除 1.变量定义 变量正确定义. 格式:变量名="变量值" # 两种方式都可以 [root@localhost ~]# name=zhenniubi [root@localhost ~]# name="zhen niubi" 变量名不能用数字开头. [root@localhost ~]# 2name="zhe

  • git版本库创建拓展添加文件到版本库教程

    目录 1.创建一个版本库 2.把文件添加到版本库 (1)首先这里再明确一下 (2)使用Windows的童鞋要特别注意: (3)把文件添加到版本库 3.总结 今天看关于Git的博客,发现总结关于Git仓库的文档,写的思路很清晰.可以和前一篇文章,对照的看,可以更加清晰理解. git-reference在线文档: http://shouce.jb51.net/gitbook/Getting-Started/index.html 版本库又名仓库,英文名repository,你可以简单理解成一个目录,这

  • 从git仓库中删除.idea文件夹的小妙招

    如果不配置.gitignore的文件,带push代码的时候就会把一写不必要的文件push到远程仓库,如.idea文件.如果不小心出现此文件在远程仓库可以通过一下步骤delete此文件: 1.配置.gitignore文件(新建/编辑) echo '.idea' >> .gitignore 2.将.gitignore文件上传到远程仓库 git pull git add .gitignore git commit -m 'edit .gitignore' git push origin master

  • git丢弃本地修改的所有文件(新增、删除、修改)

    一,未使用 git add 缓存代码时. 可以使用 git checkout -- filepathname (比如: git checkout -- readme.md  ,不要忘记中间的 "--" ,不写就成了检出分支了!!).放弃所有的文件修改可以使用 git checkout .  命令. 此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除.但是此命令不会删除掉刚新建的文件.因为刚新建的文件还没已有加入到 git 的管理系统中.所

  • Git的基础文件操作初始化查看添加提交示例教程

    目录 1.Git最基础的使用方式 (1)初始化本地版本库 (2)查看文件的状态 (3)把文件添加到暂存区 (4)把暂存区的内容提交到本地版本库 2.总结本文用到的Git命令 1.Git最基础的使用方式 (1)初始化本地版本库 要对现有的某个项目开始使用Git管理,只需到此项目所在的根目录,执行git init命令即可. 准备一个新的Git本地版本库: L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit $ git init Initializ

  • SQL Server附加数据库报错无法打开物理文件,操作系统错误5的图文解决教程

    问题描述: 附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf和ldf文件,本演示以ldf为例. 1.点击文件右键属性-->安全-->编辑 2.编辑-->添加 3.添加-->高级 4.高级-->立即查找-->搜索结果中找到-->Everyone-->确定-->确定 5.确定-->默认选中的Everyone用户-->

  • PHP实现的文件操作类及文件下载功能示例

    本文实例讲述了PHP实现的文件操作类及文件下载功能.分享给大家供大家参考,具体如下: 文件操作类: <?php // Copyright 2005, Lee Babin (lee@thecodeshoppe.com) // This code may be used and redistributed without charge // under the terms of the GNU General Public // License version 2.0 or later -- www

  • Python文件操作之合并文本文件内容示例代码

    前言 相信大家初入某个项目,一般都要看代码.有时候,想把代码文件打印下来看,不过一般代码文件数量都在两位数或更多,逐一打开.打印,确实太耗费精力了,此外,也会出现某个代码文件打印到纸上只占了一两行的情况,很浪费纸.如果可以合并到一个文本文件里面上面这些问题就解决. 目前一个用的比较多的功能:将多个小文件的内容合并在一个统一的文件中,对原始文件重命名标记其已被处理过. 之前使用其他脚本写的,尝试用python写了一下,顺便熟悉一下python的文件处理命令. 原始文件 经过处理之后 最后还有一个蛋

  • java io读取文件操作代码实例

    这篇文章主要介绍了java io读取文件操作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 主要分为字节读取和字符读取,字节读取可以一个一个读取和字节数组读取,字符读取同样之,字符读取适合文本读取,字节读取皆可以 这里直接上代码,读取文件的9个小demo package com.io; import org.junit.Test; import java.io.*; public class FileTest { //1.字节流字节一个

  • C语言文件操作零基础新手入门保姆级教程

    目录 一.前言 二.文件操作基础知识 ①什么是文件 ②数据文件类型 ③数据如何存储 ④如何读取二进制文件 ⑤什么是文件名 ⑥文件缓冲区 ⑦文件指针 三.文件操作函数 ①fopen 与 fclose ②fputc与fgetc ③fputs与fgets ④fprintf与fscanf ⑤fwrite与fread ⑥fseek与ftell与rewind ⑦ferror与feof ⑧补充函数 sscanf sprintf ⑨补充函数perror  strerror 总结 一.前言 我们如何使我们设计的程

  • Java中File文件操作类的基础用法

    前言 众所周知Java提供File类,让我们对文件进行操作,下面就来简单整理了一下File类的用法. 话不多说了,来一起看看详细的介绍吧 1.基本概念 File:文件和目录路径名的抽象表示形式,代表文件或者文件夹. 2.构造方法 // 根据parent抽象路径名和child路径名字符串创建一个新File实例 File(File parent, String child) // 通过将给定路径名字符串转换为抽象路径名来创建一个新File实例 File(String pathname) // 根据p

  • Qt基础开发之Qt文件操作类QFile读写文件的详细方法与实例及QDataStream的使用方法

    Qt文件操作类QFile简介 Qt中使用QFile类来操作文件的输入/输出.继承至QIODevice,QIODevice类是输入/输出设备的基类, 为设备提供了公共实现和抽象接口用于读写块数据.QIODevice又继承至QObject. 1.使用QFile类打开文件 QFile的构造函数 QFile(const QString &name) //传入一个文件路径 构造完成后,并没有打开文件,需要使用QFile::open函数来打开文件 [virtual] bool QFile::open(Ope

  • 一文搞懂Golang文件操作增删改查功能(基础篇)

    前言 目前,Golang 可以认为是服务器开发语言发展的趋势之一,特别是在流媒体服务器开发中,已经占有一席之地.很多音视频技术服务提供商也大多使用 Golang 语言去做自己的后台服务开发,业内貌似已经达成了某种共识.今天我们不聊特别深奥的机制和内容,就来聊一聊 Golang 对于文件的基本操作. 正文 开始之前,讲一个非常有意思的小桥段.最开始接触 Golang 这种语言的时候,我总感觉它和 Google 单词比较像,所以一度怀疑二者有什么联系.后来一查才发现,二者确实有联系,晕- -因为 G

  • C++中文件操作基础详解

    目录 文件操作 文件分类 文本文件 写文件 读文件 二进制文件 写文件 读文件 文件操作 意义:利用文件操作可以保存我们程序运行的信息,是持久化技术的体现 文件分类 按文件类型分为: 1.文本文件    -  文件以文本的ASCII码形式存储在计算机中 2.二进制文件 - 文件以文本的二进制形式存储在计算机中 按类分为: ofstream类:写操作 ifstream类: 读操作 fstream类: 读写操作 文本文件 写文件 五个步骤: 1.引入头文件 #include <fstream> 2

随机推荐