Git文件常用操作总结及拓展
作者:繁华似锦Fighting 发布时间:2023-02-04 08:13:18
1、Git本地版本库结构
如下图所示:
工作区(
Working Directory
)
添加、编辑、修改、删除文件等操作。暂存区(
Stage
)
打算提交,但还没提交的内容。最后可以统一提交到Git仓库中。也可以不提交,撤销回来。Git仓库(
Git Repository
)
实实在在的项目存储的每个一历史的版本。
2、Git常用操作方法
Git的专属命令都是以git
开始的,然后是索要执行的操作,最后还可以加上一些参数。
以下命令都需在仓库中执行。
(1)状态查看。
命令: git status
命令作用:查看工作区、暂存区状态。
(2)添加文件到暂存区。
命令:git add [file name]
命令作用:
该命令的作用是告诉Git系统,将指定文件的当前快照写入到版本库暂存区。即,将文件交给Git进行版本管理。
提交到暂存区,并且转换文件中的换行符。
被Git追踪的暂存区中的文件可以被提交到本地版本库。
(3)文件从暂存区撤回到工作区。
命令:git rm --cached [file name]
命令作用:把文件从暂存区撤回到工作区。
(4)提交文件。
命令:git commit -m '本次提交的说明'
命令作用:提交操作就通过命令将Git暂存区中的文件快照永久性地写入到本地版本库中。
3、补充:添加多个文件到暂存区
有两种方式:
git add
命令后添加多个文件,文件之间使用空格分隔。
git add
命令后使用通配符*
指定多个文件。
示例:
# 1.查看工作区、暂存区状态
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
hello.java # 文件名为红色
test.java # 文件名为红色
xyj-sha_hs.py # 文件名为红色
xyj-sun_wk.py # 文件名为红色
xyj-zhu_bj.py # 文件名为红色
nothing added to commit but untracked files present (use "git add" to track)
# 2.添加多个文件到暂存区
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git add hello.java test.java
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: hello.java # 文件名为绿色
new file: test.java # 文件名为绿色
Untracked files:
(use "git add <file>..." to include in what will be committed)
xyj-sha_hs.py # 文件名为红色
xyj-sun_wk.py # 文件名为红色
xyj-zhu_bj.py # 文件名为红色
# 3.使用通配符添加多个文件到暂存区
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git add xyj*.py
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: hello.java # 文件名为绿色
new file: test.java # 文件名为绿色
new file: xyj-sha_hs.py # 文件名为绿色
new file: xyj-sun_wk.py # 文件名为绿色
new file: xyj-zhu_bj.py # 文件名为绿色
4、补充:提交操作未写备注
如果你在执行git conmit
提交命令的时候,并没有写-m
信息,这时会启动文本编辑器,以便输入本次提交的说明。
默认的提交消息包含最后一次运行git status
的输出,放在注释行里,如下图:
另外开头还有一空行,供你输入提交说明。你完全可以去掉这些注释行,不过留着也没关系,多少能帮你回想起这次更新的内容有哪些。
如下:
会弹出一个窗口,一个vim
编辑器窗口:
说明:
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Changes to be committed:
# modified: readme.txt
#
Please enter the commit message for your changes. Lines startingwith '#' will be ignored, and an empty message aborts the commit.
对于你这次提交中修改的内容要进行说明,
以'#'开头的行将被忽略,并且在第一行填写说明信息。
Changes to be committed: modified: readme.txt
readme.txt
的修改已被Git追踪到。
进行提交说明的补充:
保存并退出后,提交成功,如下图:
总结:当提交操作的说明内容比较多,或者需要写的比较详细的时候,可以使用这种方式提交。
5、补充:从工作区直接提交到版本库
尽管使用暂存区域的方式,可以准备好要提交的细节,但有时候这么做略显繁琐。
Git提供了一个跳过使用暂存区域的方式,只要在提交的时候,给git commit
命令加上-a
选项,Git就会自动把所有已经跟踪过的文件,暂存起来一并提交,从而跳过git add
步骤。
命令:git commit -a
示例:
(1)先查看当前工作目录中的文件状态。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
nothing to commit, working tree clean
可以看到非常的干净。
(2)我们创建两个文件。
一个文件是新增文件test.txt
,此前没有被Git追踪过。
两个文件是readme.txt
,已被Git追踪,我们将该文件变成已修改状态。
# 1.新建test.txt
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ echo "hello test" > test.txt
# 2.修改readme.txt文件
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ echo "hello git v666" >> readme.txt
# 3.查看工作目录中的文件状态
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: readme.txt# 已修改状态,未在暂存区
Untracked files:
(use "git add <file>..." to include in what will be committed)
test.txt # 未追踪状态
no changes added to commit (use "git add" and/or "git commit -a")
(3)提交到Git版本库中。
我们直接使用git commit -a -m
命令直接执行提交操作,看看会发生什么情况。
# 提交
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git commit -a -m 'test -a'
[master 1b0de31] test -a
1 file changed, 1 insertion(+)
# 查看工作目录文件状态
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
test.txt # 未追踪状态
nothing added to commit but untracked files present (use "git add" to track)
我们可以看到,未被追踪状态的文件,不能直接从工作区直接提交到版本库,使用-a
选择也不可以。
来源:https://www.cnblogs.com/liuyuelinfighting/p/16178013.html
猜你喜欢
- 前言数据清洗是一项复杂且繁琐(kubi)的工作,同时也是整个数据分析过程中最为重要的环节。有人说一个分析项目80%的时间都是在清洗数据,这听
- 一般来说,我们会将自己写的Python模块与python自带的模块分开存放以达到便于维护的目的。那么如何在Python中添加自定义的模块呢?
- 监控Linux服务器嘛,脚本逻辑基本上是用os.popen模块,然后把获取到的结果通过split切分成一个list,再拿目标list值和我阈
- centos6.x默认安装的python为2.6版本,今天换成了3.5版本这里不再讲如何升级python版本在安装完新的版本后,之前安装的插
- class Node: def __init__(self,dataval=None): self.d
- 没废话,直接上代码。环境说明:python3.6django2.0.5我们使用redis的作为celery任务队列,有一个合成包可以直接安装
- hashlibhashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256,
- 前言Python 是每个程序员都喜欢的语言,因为它易于编码和易于阅读的语法。但是,你知道 python 有一些很酷的技巧可以用来让事情变得更
- 1.事件绑定函数事件绑定函数有三个如下: 组件.bind('事件类型',
- 今天早上早些时候,在我的Planet Python源中,我读到了一篇有趣的文章"开发CARDIAC:纸板计算机(Developin
- 前言使用Python发邮件,是个简单的话题,可是如何可以优雅的轻松的群发邮件,并附加PDF附件,是很多小伙伴的日常工作,却也是很多小白需要费
- SQL(结构化查询语言)就是负责与ANSI维护的数据库交互的标准。最新的版本是SQL-99,还有一个新标准SQL-200n尚处于制定过程中。
- 本文实例讲述了Python文件去除注释的方法。分享给大家供大家参考。具体实现方法如下:#!/usr/bin/python # -*- cod
- 需要准备的环境:一个B站账号,需要先登录,否则不能查看历史弹幕记录联网的电脑和顺手的浏览器,我用的ChromePython3环境以及requ
- 目录1、D2admin2、vue-element-admin3、JEECG-BOOT4、GIN-VUE-ADMIN5、vue-admin-b
- 本文实例讲述了python统计文本字符串里单词出现频率的方法。分享给大家供大家参考。具体实现方法如下:# word frequency in
- 本文实例讲述了python中metaclass原理与用法。分享给大家供大家参考,具体如下:什么是 metaclass.metaclass (
- 阅读上一篇教程:WEB2.0网页制作标准教程(9)第一个CSS布局实例如果我们想在3列布局的最后加一行页脚,放版权之类的信息。就遇到必须对齐
- 1.Python 程序from flask import Flaskapp = Flask(__name__)@app.route('
- 本文实例讲述了python单向循环链表原理与实现方法。分享给大家供大家参考,具体如下:单向循环链表单链表的一个变形是单向循环链表,链表中最后