主頁 > 軟體設計 > 通宵總結!值得你收藏的Git命令清單(全),切莫書到用時方恨少

通宵總結!值得你收藏的Git命令清單(全),切莫書到用時方恨少

2021-04-15 10:49:43 軟體設計

??坦白說,Git目前已經是國內最常見的代碼管理工具之一;無論新手或老油條,都需要有一套自己的Git命令字典,方便隨時使用,本文基本上涵蓋了常用到的所有Git命令,足矣讓我們得心應手的在公司使用Git管理代碼,
??前車之鑒,后事之師,希望我的文章們能幫助你少走些彎路,打工人不易,加油!
??走,上車,正規車!

在這里插入圖片描述

車票

  • 一、Git簡介
  • 二、Git與SVN的區別
  • 三、Git基本流程
  • 四、Git檔案狀態
  • 五、用戶配置
  • 六、單機使用簡單流程
  • 七、Git命令記錄
    • 1、新建本地倉庫
    • 2、Git配置資訊
    • 3、增加、洗掉檔案
    • 4、代碼提交
    • 5、操作分支(branch)
    • 6、標簽Tag
    • 7、查看資訊
    • 8、遠程同步
    • 9、撤銷操作
    • 10、其他操作
    • 11、.gitignore忽略配置(提交到git時,忽略部分檔案)
    • 12、Git常用命令速查表

一、Git簡介

??Git是一款免費、開源的分布式版本控制系統,用于敏捷高效地處理任何或小或大的專案,

??Git與常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本庫的方式,不必服務器端軟體支持,

??Git屬于分布式版本控制系統,每個人電腦上都有一個完整的版本庫,稱為本地倉庫,在本地就可以進行版本控制,另外在其他服務器上還有一個版本庫,稱為中央倉庫,中央倉庫的作用是進行版本交換,每個開發人員要保持代碼一致只需要和中央倉庫進行互動就可以了,

二、Git與SVN的區別

  • Git不僅僅是個版本控制系統,它也是個內容管理系統(CMS),作業管理系統等,
  • 如果你是一個具有使用SVN背景的人,你需要做一定的思想轉換,來適應Git提供的一些概念和特征,

具體區別點:

  • Git是分布式的,SVN不是:這是Git和其它非分布式的版本控制系統,例如SVN,CVS等,最核心的區別,
  • Git把內容按元資料方式存盤,而SVN是按檔案:所有的資源控制系統都是把檔案的元資訊隱藏在一個類似.svn,.cvs等的檔案夾里,
  • Git分支和SVN的分支不同:分支在SVN中一點不特別,就是版本庫中的另外的一個目錄,
  • Git沒有一個全域的版本號,而SVN有:目前為止這是跟SVN相比GIT缺少的最大的一個特征,
  • Git的內容完整性要優于SVN:Git的內容存盤使用的是SHA-1哈希演算法,這能確保代碼內容的完整性,確保在遇到磁盤故障和網路問題時降低對版本庫的破壞,

三、Git基本流程

??下圖是Git基本操作的流程圖,一般來說,日常使用只要記住下圖7個命令就可以了,當然,不能靠這幾個基礎語法就以為熟練使用了Git哦,下面整理了詳細的語法記錄,結合實際情況,祝你快速掌握Git,

在這里插入圖片描述

四、Git檔案狀態

在這里插入圖片描述

  • untracked:未跟蹤,表示檔案不受git管理,一般新建的檔案處于該狀態 Untracked files
  • staged:已暫存,表示對以修改的檔案做了標記,使之包含在下次要提交的檔案串列中 Changes to be committed
  • committed:已提交,表示檔案已經被提交到本地倉庫
  • modified:已修改,表示檔案內容已被修改,但是沒有做標記 Changes not staged for commit

五、用戶配置

如果Git沒有獲取到用戶配置,則只能拉取代碼,不能修改,想使用git,需要告訴git是誰在使用;

如下,配置用戶名和郵箱

$ git config --global user.name "xxx"
$ git config --global user.email "xxxx@qq.com"

查看當前用戶名和郵箱

$ git config --global user.name   # 獲取當前登錄的用戶
$ git config --global user.email  # 獲取當前登錄用戶的郵箱

六、單機使用簡單流程

單人使用時,只有master,推送專案到遠程倉庫基本流程就沒必要這么麻煩,如下即可:

  1. 先手動在git系統端創建新的遠程倉庫
  2. git clone [HTTP URL] 克隆下來后是一個帶有.git的檔案夾,也就是本地倉庫
  3. git add . 添加該目錄下所有檔案到暫存區,也可以指定檔案名稱
  4. git commit -m “第一次提交” 添加檔案到本地倉庫并提交描述資訊
  5. git push -u origin master 把本地倉庫的檔案推送到遠程倉庫(-u 表示第一次推送master分支的所有內容,后面再推送就不需要-u了)

七、Git命令記錄

1、新建本地倉庫

命令功能介紹
git init在當前目錄新建一個Git代碼庫;
該命令將在該專案目錄下創建一個.git的子目錄,包含該Git倉庫中所有的必須檔案,
git init [project-name]新建一個目錄,將其初始化為Git代碼庫
git clone [url]下載一個專案和它的整個代碼歷史

2、Git配置資訊

命令功能介紹
git --version查看git的版本資訊
git config --list
git config -l
顯示Git當前配置資訊,點擊“q”鍵退出查看
git config -e編輯Git本地配置
git config -e --global編輯Git全域配置

Git配置決議

user.email=chenhh@xxx.com
user.name=chenhh
core.ignorecase=false            # 不許忽略檔案名大小寫
core.autocrlf=input              # 換行模式為 input,即提交時轉換為LF,檢出時不轉換
core.filemode=false              # 不檢查檔案權限
core.safecrlf=true               # 拒絕提交包含混合換行符的檔案
core.editor=vim
core.repositoryformatversion=0   # Internal variable identifying the repository format and layout version
core.bare=false                  # 默認不創建裸倉庫
core.logallrefupdates=true       # log 所有 ref 的更新
core.precomposeunicode=true      # Mac專用選項,開啟以便檔案名兼容其他系統
push.default=simple                    # 只推送本地當前分支,且與上游分支名字一致
alias.lg=log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
pull.rebase=true                 # 強制開啟 rebase 模式
credential.helper store          # 記住密碼

3、增加、洗掉檔案

命令功能介紹
git add .添加當前目錄的所有檔案到暫存區
git add [file1][file2] …添加指定檔案到暫存區
git add [dir]添加指定目錄到暫存區,包括子目錄
git add -p對于同一個檔案的多處變化,可以實作分次提交
git rm [file1] [file2] ...洗掉作業區檔案,并且將這次洗掉放入暫存區
git rm --cached [file]隱藏指定檔案,使Git停止追蹤,但該檔案會保留在作業區
git mv [file-original] [file-renamed]改名檔案,并且將這個改名放入暫存區

4、代碼提交

命令功能介紹
git commit -m [message]提交暫存區到倉庫區,git commit -m “first commit”
git commit [file1] [file2] … -m [message]提交暫存區的指定檔案到倉庫區
git commit -a提交作業區自上次commit之后的變化,直接到倉庫區
git commit -v提交時顯示所有diff資訊
git commit --amend -m [message]使用一次新的commit,替代上一次提交;
如果代碼沒有任何新變化,則用來改寫上一次commit的提交資訊
git commit --amend [file1] [file2] …重做上一次commit,并包括指定檔案的新變化

5、操作分支(branch)

命令功能介紹
git branch列出所有本地分支
git branch -r列出所有遠程分支
git branch -a列出所有本地分支和遠程分支
git branch [branch-name]新建一個分支,但依然停留在當前分支
git checkout -b [branch]新建一個分支,并切換到該分支
git branch [branch] [commit]新建一個分支,指向指定commit
git branch --track [branch] [remote-branch]新建一個分支,與指定的遠程分支建立追蹤關系
git checkout [branch-name]切換到指定分支,并更新作業區
git checkout -切換到上一個分支
git branch --set-upstream [branch] [remote-branch]建立追蹤關系,在現有分支與指定的遠程分支之間
git merge [branch]合并指定分支到當前分支;例:如果當前是master分支,需要合并dev分支:git merge dev
git cherry-pick [commit]選擇一個commit,合并進當前分支
git branch -m test dev將test分支名字改為dev
git branch -d [branch-name]洗掉名字為[branch-name]的分支;例如:git branch -D dev
git branch -D [branch-name]強制洗掉名字為[branch-name]的分支;例如:git branch -D dev
git push origin --delete [remote-branchname]洗掉遠程分支

6、標簽Tag

命令功能介紹
git tag列出所有tag
git tag [tag]新建一個tag在 當前 commit
git tag [tag] [commit]新建一個tag在 指定 commit
git tag -d [tag]洗掉本地tag
git push origin :refs/tags/[tagName]洗掉遠程tag
git show [tag]查看tag資訊
git push [remote] [tag]提交指定tag
git push [remote] --tags提交所有tag
git checkout -b [branch] [tag]新建一個分支,指向某個tag

7、查看資訊

命令功能介紹
git status??git status命令的作用是顯示倉庫檔案狀態,紅色表示作業目錄的檔案被修改但還沒有提交到暫存區,綠色表示已經提交到暫存區,

以極簡的方式顯示檔案狀態(下面是顯示內容決議):git status -s

A:本地新增的檔案(服務器上沒有)
C:檔案的一個新拷貝
D:本地洗掉的檔案(服務器上還在)
M:紅色為修改過未被添加進暫存區的,綠色為已經添加進暫存區的
R:檔案名被修改
T:檔案的型別被修改
U:檔案沒有被合并(你需要完成合并才能進行提交)
X:未知狀態(很可能是遇到git的bug了,你可以向git提交bug report)
?:未被git進行管理,可以使用git add fileName把檔案添加進來進行管理
ls -al查看詳細目錄資訊
git log顯示當前分支的版本歷史
git log --stat顯示commit歷史,以及每次commit發生變更的檔案
git log -S [keyword]搜索提交歷史,根據關鍵詞
git log [tag] HEAD --pretty=format:%s顯示某個commit之后的所有變動,每個commit占據一行
git log [tag] HEAD --grep feature顯示某個commit之后的所有變動,其"提交說明"必須符合搜索條件
1.git log --follow [file]
2.git whatchanged [file]
顯示某個檔案的版本歷史,包括檔案改名
git log -p [file]顯示指定檔案相關的每一次diff
git log -5 --pretty --oneline顯示過去5次提交
git log --before=“yyyy-MM-dd”顯示某個日期之前的記錄,如git log --before=“2020-01-01”(包含2020年1月1號的記錄)
git log --after=“yyyy-MM-dd”顯示某個日期之后的記錄,如git log --after=“2020-01-01”(包含2020年1月1號的記錄)
git log --author=“name”查看某個人的提交記錄
git log -n顯示前n條記錄
git shortlog -sn顯示所有提交過的用戶,按提交次數排序
git blame [file]顯示指定檔案是什么人在什么時間修改過
git diff顯示暫存區和作業區的差異
git diff --cached [file]顯示暫存區和上一個commit的差異
git diff HEAD顯示作業區與當前分支最新commit之間的差異
git diff [first-branch]…[second-branch]顯示兩次提交之間的差異
git diff --shortstat “@{0 day ago}”顯示今天你寫了多少行代碼
git show [commit]顯示某次提交的元資料和內容變化
git show --name-only [commit]顯示某次提交發生變化的檔案
git show [commit]:[filename]顯示某次提交時,某個檔案的內容
git reflog顯示當前分支的最近幾次提交

8、遠程同步

命令功能介紹
git fetch [remote]下載遠程倉庫的所有變動
git remote -v顯示所有遠程倉庫
git remote show [remote]顯示某個遠程倉庫的資訊
git remote add [shortname] [url]增加一個新的遠程倉庫,并命名
git pull從遠端庫更新內容到本地(相當于svn的update)
git pull [remote] [branch]取回遠程倉庫的變化,并與本地分支合并
git push [remote] [branch]上傳本地指定分支到遠程倉庫,如:git push origin master(同步到遠程master倉庫)
git push [remote] --force強行推送當前分支到遠程倉庫,即使有沖突
git push [remote] --all推送所有分支到遠程倉庫
git push origin --delete [branch]洗掉遠程[branch]分支;例如:git push origin --delete dev

9、撤銷操作

命令功能介紹
git checkout [file]恢復暫存區的指定檔案到作業區
git checkout [commit] [file]恢復某個commit的指定檔案到暫存區和作業區
git checkout .恢復暫存區的所有檔案到作業區
git reset [file]重置暫存區的指定檔案,與上一次commit保持一致,但作業區不變
git reset --hard HEAD^回退到上一個版本(HEAD代表當前版本,有一個^代表上一個版本,以此類推)
git reset --hard d7b5回退到指定版本(其中d7b5是想回退的指定版本號的前幾位)
git reset [commit]重置當前分支的指標為指定commit,同時重置暫存區,但作業區不變
git reset --hard [commit]重置當前分支的HEAD為指定commit,同時重置暫存區和作業區,與指定commit一致
git reset --keep [commit]重置當前HEAD為指定commit,但保持暫存區和作業區不變
git revert [commit]新建一個commit,用來撤銷指定commit,后者的所有變化都將被前者抵消,并且應用到當前分支
git stash保存當前進度;git stash命令的作用主要如果當前分支所做的修改你還不想提交,但又需要切換到其他分支去查看,就可以使用git stash保存當前的修改,
git stash list看已經保存的歷史記錄
git stash pop <歷史進度id>重新應用某個已經保存的進度,并且洗掉進度記錄
git stash apply <歷史進度id>重新應用某個已經保存的進度,但不洗掉進度記錄,如果直接使用git stash默認是使用最近的保存
git stash drop <歷史進度id>洗掉某個歷史進度
git stash clear洗掉所有的歷史進度

10、其他操作

命令功能介紹
git grep “陳哈哈”從當前目錄的所有檔案中查找文本內容
git grep “陳哈哈” v2.5在某一版本中搜索文本

11、.gitignore忽略配置(提交到git時,忽略部分檔案)

在根目錄下創建.gitignore檔案,添加下方內容代表忽略該檔案或該檔案夾下檔案不被Git追蹤,即不會提交,

注意:新加.gitignore只能忽略那些原來沒有被提交過的檔案,如果某些檔案已經被納入了版本管理中,則修改.gitignore是無效的,

target/
.settings/
.idea/
.mvn/
*.classpath
*.options
*.project

12、Git常用命令速查表

在這里插入圖片描述

如有問題請在評論區留言呦,我會及時糾正,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/276229.html

標籤:其他

上一篇:30分鐘時長千行代碼《C#程式設計基礎》經典程式,C#菜鳥開發必備!

下一篇:【windows命令】windows系統常用cmd命令合集(持續更新中ing)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more