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

 更新时间:2022年04月24日 11:58:56   作者:繁华似锦Fighting  
这篇文章主要为大家介绍了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.txt

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

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

相关文章

  • 将WSL系统更换国内源的方法(固定路径+国内镜像源+详细教程)

    将WSL系统更换国内源的方法(固定路径+国内镜像源+详细教程)

    这篇文章主要介绍了将WSL系统更换国内源的方法(固定路径+国内镜像源+详细教程),首先找到wsl镜像源,替换镜像源,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • 微信小程序应用号开发教程详解

    微信小程序应用号开发教程详解

    这篇文章主要介绍了微信小程序应用号开发教程详解的相关资料,需要的朋友可以参考下
    2016-09-09
  • 好用的VSCode头部注释插件Fileheader Pro

    好用的VSCode头部注释插件Fileheader Pro

    这篇文章主要为大家介绍了VSCode头部注释插件Fileheader Pro的使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Typora2024最新版使用方法步骤详解(亲测可用)

    Typora2024最新版使用方法步骤详解(亲测可用)

    此方法非常简单,无需安装dll补丁,无需修改注册表,无需使用老版本,仅需修改部分文件内容即可,对2024最新版Typora使用方法感兴趣的朋友一起看看吧
    2024-08-08
  • 关于Interlij 无法使用中文输入法的解决方法(适用于Interlij全家桶 Linux环境)

    关于Interlij 无法使用中文输入法的解决方法(适用于Interlij全家桶 Linux环境)

    这篇文章主要介绍了关于Interlij 无法使用中文输入法的解决方法(适用于Interlij全家桶 Linux环境),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • centos部署open-webui的完整流程记录

    centos部署open-webui的完整流程记录

    这篇文章主要介绍了centos部署open-webui的完整流程,OpenWebUI是一个开源的Web用户界面工具,用于与本地或私有化部署的大语言模型交互,文中将步骤介绍的非常详细,需要的朋友可以参考下
    2025-02-02
  • MyBatisCodeHelper-Pro插件破解版详细教程[2.8.2]

    MyBatisCodeHelper-Pro插件破解版详细教程[2.8.2]

    MyBatisCodeHelper-Pro是IDEA下的一个插件,功能类似mybatis plugin。这篇文章给大家介绍MyBatisCodeHelper-Pro插件破解版[2.8.2]的相关知识,感兴趣的朋友跟随小编一起看看吧
    2020-09-09
  • Keras搭建Efficientdet目标检测平台的实现思路

    Keras搭建Efficientdet目标检测平台的实现思路

    EfficientNet模型具有很独特的特点,这个特点是参考其它优秀神经网络设计出来的,本文以Efficientnet-B0和Efficientdet-D0为例,进行Efficientdet的解析,感兴趣的朋友一起看看吧
    2021-06-06
  • OAuth从1.0到2.1的发展之路

    OAuth从1.0到2.1的发展之路

    OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。简单来说就是提供除了"账户密码"验证方式以外的验证授权方式。这篇文章介绍了OAuth从1.0到2.1的发展之路,感兴趣的同学可以收藏一下
    2021-11-11
  • Windows环境下实现Jenkins部署的教程详解

    Windows环境下实现Jenkins部署的教程详解

    这篇文章主要介绍了Windows环境下实现Jenkins部署,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01

最新评论