git命令行命令(1)
admin
2023-01-31 09:06:36
0

我们知道git是分布式的版本库,也就是本地仓库里面包含了开发的所用内容,每个人都是本地版本库的主人,包括历史记录、文件内容。即使没有和远程代码库交换依旧可以提交内容到本地仓库,然后git push到远程仓库。
可以使用git $commit --help查看每个命令的html帮助文档,例如git init --help

一. 创建本地仓库

git init可以在本地创建一个空的本地仓库。其常用命令行如下,
git init [-q | --quiet] [--bare] [directory]

  • -q| --quiet :创建过程中只输出警告或者错误级别的信息
  • --bare是表示创建的版本库是裸版本库,也就是不包含工作空间,只有.git目录下面内容的仓库,一般用作服务器上的远程仓库。
  • directory为本地仓库的目录

二.配置本地仓库

当我们有了本地仓库以后,需要对这个仓库配置,需要配置用户名和用户的email和其他的配置。
git config命令提供了三种级别的配置。分别是:

  • --global:用户级别。其修改的配置文件的内容在~/.gitconfig文件中,如果是windows系统就在C:\Users\$用户名 的目录下
  • --system:适用于所用的用户,其修改的配置文件在etc/gitconfig文件中,如果是windows系统,一般修改在git的安装目录下,例如$GIT_INSTALL_DIR\mingw64\etc\gitconfig
  • --local:适用范围为本版本库,其修改的配置文件在本地仓库的.git/config文件中,也是git config修改的默认范围。
    在使用git命令配置的时候,其配置文件的优先级为local>global>system,可以使用git config --list --show-origin查看每个配置项所在的文件

    1.设置配置

git config [--add] name value                ---添加或者修改配置项,默认的使用范围为本地仓库,可以使用--global、--system来指定范围,
                                                                        例如 git config user.name fenglxh、git config user.email fenglxh@126.com
git config --unset name                           --取消该配置项,同样可以使用--global、--system来指定范围,

2.显示配置

使用git config [-l|--list]显示配置

3.配置命令别名

git存在大量命令,可以对我们经常使用命令,而且命令比较长的命令设置一个别名,也就是一个简写。
别名的配置也需要使用config命令,比如给 git status 设置别名 st:

git config alias.st status                -----以alias.开头
git config --global alias.lg "log --color --graph --oneline --abbrev-commit"

这样我们以后使用的时候,直接用 git st 就可以做 git status 的事了。

三.修改本地仓库

使用版本管理最常用的操作就是提交代码,不过对git来说,如果我们修改了文件内容提交的话必须先使用git add命令,然后才能使用git commit命令提交到本地仓库。

1. git add

git add命令是把修改提交到暂存区中。

git add -A                   -----------懒人模式,把工作目录下所有的更改提交到,包括删除、添加、修改文件
git add gameoflife-acceptance-tests/\*.java -----------------------------把某个目录下的所有java后缀的文件提交
git add *.java                              ------------------------------提交所有的java后缀的文件

2.git rm

git rm命令是把暂存区中的添加删除,命令基本和git add相反,都是修改的暂存区

git rm --cached hello-word/README                   ---------------把 hello-word/README从暂存区移除
git rm -f hello-word/README                              ---------------把hello-word/README从暂存区移除,同时删除工作目录下的该文件
git rm --cached Documentation/*.txt                   ---------------把Documentation下的所有的txt文件从暂存区移除

3.git commit

git commit命令是提交暂存区中的修改。

git commit -m "commit message"          --------------带有提交注释的提交
git commit --allow-empty -m "This is a empty commit"             ----------当暂存区没有变化的时候,是提交失败的,可以加上 --allow-empty运行空提交,此时这两个提交的tree对象指向同一个。

4.git stash

当我们修改了工作区的内容,但是还不能提交,此时需要更新代码的时候,可以把本地的修改存储,使用git stash命令。这样就会把工作区的修改(不包括新增)保存,并把工作区的内容切换到HEAD指向的提交中,这样又是一个干净的工作区了。

git stash ---------------存储
git stash pop -------------弹出存储
git stash list  --------显示所有的存储

实现原理:
当我们使用git stash命令的时候,会生成.git/refs/stash文件,其内容为stash的 sha1信息。可以通过git cat-file查看这个SHA1的信息,会发现这个sha1是以当前的SHA1和工作区提交(创建的一个提交对象)为父提交。
git命令行命令(1)
注:SHA-Stash为.git/refs/stash文件中保存的sha1。sha-temp为工作区的提交

当我们多次运行git stash的时候,.git/refs/stash文件中的sha永远执行最近执行的stash对应的sha。在.git\logs\refs/stash文件中按顺序保存所有的stash命令对应的sha

四.查看仓库

1.git status

显示工作目录下的状态。

当我们不存在工作目录修改的时候执行输出如下信息:
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
随便对其中的某个文件修改,但是不提交暂存区:
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git checkout -- ..." to discard changes in working directory)

        modified:   pom.xml

no changes added to commit (use "git add" and/or "git commit -a")
此时我们把修改提交到缓存区,再查看状态,会发现暂存区发生了变化。
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD ..." to unstage)

        modified:   pom.xml
此时我们再修改该文件,但是不执行git add命令。
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD ..." to unstage)

        modified:   pom.xml

Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git checkout -- ..." to discard changes in working directory)

        modified:   pom.xml
会发现提示pom.xml文件修改了出现两个地方,一个是暂存区的修改,一个是工作目录的修改。而且其提示颜色并不相同

我们可以使用git status -s命令查看统计的信息(工作区的修改使用红色字体,绿×××字体是暂存区的修改)。
git命令行命令(1)

2.git diff

git diff命令显示工作区、提交、暂存区的差异

$ git diff                                         ------显示工作空间和暂存区的差异
diff --git a/pom.xml b/pom.xml
index 0ec4374..3f64500 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@                                     ----文件的第十行开始的起航
     
         SNAPSHOT
         UTF-8
-        1.4
+        1.5
         2.6
         
         1.7
@@ -178,6 +178,12 @@
                 ${easyb.version}
                 test
             
+                        
+                dom4j
+                dom4j
+                1.6.2
+                test
+            
         
     
     

$git add pom.xml  ------------------------提交到暂存区
$git diff --cached      ----------------------比较暂存区和提交的差异

3.git log

git log命令可以查看提交的信息。

git log -1              ----------------可以查看最近的一次提交,-N表示最近的N次提交
git log --oneline -N     --------------提交以一行信息显示,等于--pretty=oneline
git log --graph               -----------以图形的方式展示提交树
git log --stat                  -----------------展示提交的汇总信息

git log的精细化输出,--pretty选项。使用--pretty选项可以精细化输出commit的所有信息。

git log --oneline         --------------等价于git log --pretty=oneline输出内容为 
git log --pretty=short            ------------输出内容为<sha1>
                                                                            <author>
                                                                            <title line>
git log --pretty=medium/full/fuller/email
git log --pretty=raw        暂时提交的树、父提交等比较全的信息</code></pre>
<p>git --pretty=format:<string> 其中string是可以格式化的,支持占位符。常用的占位符如下:</p>
<ul>
<li>%H: commit hash        -----提交的SHA</li>
<li>%h: abbreviated commit hash         ----提交的SHA简写形式</li>
<li>%P: parent hashes                   ----------父提交的SHA</li>
<li>%p: abbreviated parent hashes     ----------父提交的SHA简写形式</li>
<li>%an: author name           -----作者名字</li>
<li>%ae: author email</li>
<li>%ar: author date, relative</li>
<li>%n: newline</li>
<li>%%: a raw %-----%自身</li>
<li>%s: subject   ---提交注释<br/>例如:
<pre><code class="language-bash">git log --pretty=format:"The author of %h was %an, %ar%nThe title was >>%s<<%n" -------输出大概如下:
The author of fe6e0ee was Junio C Hamano, 23 hours ago
The title was >>t4119: test autocomputing -p<n> for traditional diff input.<<</code></pre>
<h4>4.git grep</h4>
<p>git grep命令可以根据模式按行查找内容。支持的pattern类型如下:--basic-regexp, --extended-regexp, --fixed-strings, or --perl-regexp。默认为basic-regexp</p>
<pre><code class="language-bash">git grep 'time_t' -- '*.[ch]'
git grep -E 'public (class|interface) \w+[0-9]+' --------查找所有的java的类名包含数字的类
git grep -F 'fixed string'</code></pre>
<h4>5.git blame</h4>
<p>git blame可以查找文件每一行的提交信息,追溯文件的内容。<br/>git blame xxx.txt</p></li>
</ul>                <!--end::Text-->
            </div>
            <!--end::Description-->
            <div class="mt-5">
                <!--关键词搜索-->
                            </div>
            <div class="mt-5">
                <p class="fc-show-prev-next">
                    <strong>上一篇:</strong><a href="/kaifa/show-92214.html">时序女神守护Horae之恒久价值</a><br>
                </p>
                <p class="fc-show-prev-next">
                    <strong>下一篇:</strong><a href="/kaifa/show-92221.html">求$a、$b、$c中的最大值和最小值</a>                </p>
            </div>
            <!--begin::Block-->
            <div class="d-flex flex-stack mb-2 mt-10">
                <!--begin::Title-->
                <h3 class="text-dark fs-5 fw-bold text-gray-800">相关内容</h3>
                <!--end::Title-->
            </div>
            <div class="separator separator-dashed mb-9"></div>
            <!--end::Block-->
            <div class="row g-10">
                

            </div>


        </div>
        <!--end::Table widget 14-->
    </div>
    <!--end::Col-->

    <!--begin::Col-->
    <div class="col-xl-4 mt-0">
        <!--begin::Chart Widget 35-->
        <div class="card card-flush h-md-100">
            <!--begin::Header-->
            <div class="card-header pt-5 ">
                <!--begin::Title-->
                <h3 class="card-title align-items-start flex-column">
                    <!--begin::Statistics-->
                    <div class="d-flex align-items-center mb-2">
                        <!--begin::Currency-->
                        <span class="fs-5 fw-bold text-gray-800 ">热门资讯</span>
                        <!--end::Currency-->
                    </div>
                    <!--end::Statistics-->
                </h3>
                <!--end::Title-->
            </div>
            <!--end::Header-->
            <!--begin::Body-->
            <div class="card-body pt-3">

                                <!--begin::Item-->
                <div class="d-flex flex-stack mb-7">
                    <!--begin::Symbol-->
                    <div class="symbol symbol-60px symbol-2by3 me-4">
                        <div class="symbol-label" style="background-image: url('/uploadfile/202604/c561427e00d34fa.webp')"></div>
                    </div>
                    <!--end::Symbol-->
                    <!--begin::Title-->
                    <div class="m-0">
                        <a href="/news/show-14520822.html" class="text-dark fw-bold text-hover-primary fs-6">德国总理:美国正在被伊朗羞辱</a>
                        <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">德国之声4月27日报道,德国总理默茨在访问一所学校时表示,在当前的持续冲突中,伊朗领导层正试图羞辱美...</span>
                    </div>
                    <!--end::Title-->
                </div>
                                <!--begin::Item-->
                <div class="d-flex flex-stack mb-7">
                    <!--begin::Symbol-->
                    <div class="symbol symbol-60px symbol-2by3 me-4">
                        <div class="symbol-label" style="background-image: url('/uploadfile/202604/913dbad4da97c0d.jpg')"></div>
                    </div>
                    <!--end::Symbol-->
                    <!--begin::Title-->
                    <div class="m-0">
                        <a href="/news/show-14520821.html" class="text-dark fw-bold text-hover-primary fs-6">理响中国|“长”歌以行,风云激...</a>
                        <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">光阴如梭,东方潮阔。这里是中国的长三角,世界的长三角。无论过去、现在还是未来,这片土地都因时代而生,...</span>
                    </div>
                    <!--end::Title-->
                </div>
                                <!--begin::Item-->
                <div class="d-flex flex-stack mb-7">
                    <!--begin::Symbol-->
                    <div class="symbol symbol-60px symbol-2by3 me-4">
                        <div class="symbol-label" style="background-image: url('/static/assets/images/nopic.gif')"></div>
                    </div>
                    <!--end::Symbol-->
                    <!--begin::Title-->
                    <div class="m-0">
                        <a href="/news/show-14520820.html" class="text-dark fw-bold text-hover-primary fs-6">白宫:特朗普及其国安团队开会讨...</a>
                        <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">新华社华盛顿4月27日电 美国白宫新闻秘书莱维特27日在记者会上证实,总统特朗普及其国家安全团队当天...</span>
                    </div>
                    <!--end::Title-->
                </div>
                                <!--begin::Item-->
                <div class="d-flex flex-stack mb-7">
                    <!--begin::Symbol-->
                    <div class="symbol symbol-60px symbol-2by3 me-4">
                        <div class="symbol-label" style="background-image: url('/static/assets/images/nopic.gif')"></div>
                    </div>
                    <!--end::Symbol-->
                    <!--begin::Title-->
                    <div class="m-0">
                        <a href="/news/show-14520819.html" class="text-dark fw-bold text-hover-primary fs-6">人民日报刊文:日本放开杀伤性武...</a>
                        <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">日本放开杀伤性武器出口推高地缘冲突风险(国际论坛)常思纯《人民日报》(2026年04月28日 第 0...</span>
                    </div>
                    <!--end::Title-->
                </div>
                                <!--begin::Item-->
                <div class="d-flex flex-stack mb-7">
                    <!--begin::Symbol-->
                    <div class="symbol symbol-60px symbol-2by3 me-4">
                        <div class="symbol-label" style="background-image: url('/static/assets/images/nopic.gif')"></div>
                    </div>
                    <!--end::Symbol-->
                    <!--begin::Title-->
                    <div class="m-0">
                        <a href="/news/show-14520818.html" class="text-dark fw-bold text-hover-primary fs-6">医疗保障法草案二审:明确生育保...</a>
                        <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">满足多样化健康保障需求本报记者 彭 波4月27日,医疗保障法草案二审稿提请十四届全国人大常委会第二十...</span>
                    </div>
                    <!--end::Title-->
                </div>
                                <!--begin::Item-->
                <div class="d-flex flex-stack mb-7">
                    <!--begin::Symbol-->
                    <div class="symbol symbol-60px symbol-2by3 me-4">
                        <div class="symbol-label" style="background-image: url('/uploadfile/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEXy8vJkA4prAAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==')"></div>
                    </div>
                    <!--end::Symbol-->
                    <!--begin::Title-->
                    <div class="m-0">
                        <a href="/news/show-14520817.html" class="text-dark fw-bold text-hover-primary fs-6">天津一景区发生自转旋翼机事故1...</a>
                        <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">澎湃新闻记者 吕新文中国民用航空华北地区管理局4月22日公布《豪客通航“10•1”天津长芦汉盐旅游区...</span>
                    </div>
                    <!--end::Title-->
                </div>
                                <!--begin::Item-->
                <div class="d-flex flex-stack mb-7">
                    <!--begin::Symbol-->
                    <div class="symbol symbol-60px symbol-2by3 me-4">
                        <div class="symbol-label" style="background-image: url('/uploadfile/202604/057da53c0dddb41.jpg')"></div>
                    </div>
                    <!--end::Symbol-->
                    <!--begin::Title-->
                    <div class="m-0">
                        <a href="/news/show-14520816.html" class="text-dark fw-bold text-hover-primary fs-6">卡塔尔埃米尔与美国总统特朗普通...</a>
                        <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...</span>
                    </div>
                    <!--end::Title-->
                </div>
                                <!--begin::Item-->
                <div class="d-flex flex-stack mb-7">
                    <!--begin::Symbol-->
                    <div class="symbol symbol-60px symbol-2by3 me-4">
                        <div class="symbol-label" style="background-image: url('/uploadfile/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEXy8vJkA4prAAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==')"></div>
                    </div>
                    <!--end::Symbol-->
                    <!--begin::Title-->
                    <div class="m-0">
                        <a href="/news/show-14520815.html" class="text-dark fw-bold text-hover-primary fs-6">男子30年前被扣押2859克黄...</a>
                        <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...</span>
                    </div>
                    <!--end::Title-->
                </div>
                                <!--begin::Item-->
                <div class="d-flex flex-stack mb-7">
                    <!--begin::Symbol-->
                    <div class="symbol symbol-60px symbol-2by3 me-4">
                        <div class="symbol-label" style="background-image: url('/static/assets/images/nopic.gif')"></div>
                    </div>
                    <!--end::Symbol-->
                    <!--begin::Title-->
                    <div class="m-0">
                        <a href="/news/show-14520814.html" class="text-dark fw-bold text-hover-primary fs-6">商务部:取消反制欧盟两家金融机...</a>
                        <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...</span>
                    </div>
                    <!--end::Title-->
                </div>
                                <!--begin::Item-->
                <div class="d-flex flex-stack mb-7">
                    <!--begin::Symbol-->
                    <div class="symbol symbol-60px symbol-2by3 me-4">
                        <div class="symbol-label" style="background-image: url('https://x0.ifengimg.com/res/2026/29CD1B22A4B3F416DAFA44073F8FC3CAB3E382D4_size229_w929_h515.png')"></div>
                    </div>
                    <!--end::Symbol-->
                    <!--begin::Title-->
                    <div class="m-0">
                        <a href="/news/show-14520813.html" class="text-dark fw-bold text-hover-primary fs-6">过去24小时共有5艘船只通过霍...</a>
                        <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...</span>
                    </div>
                    <!--end::Title-->
                </div>
                
            </div>
            <!--end::Body-->
        </div>
        <!--end::Chart Widget 35-->
    </div>
    <!--end::Col-->
</div>



</div>
<!--end::Content container-->
</div>
<!--end::Content-->
</div>
<!--end::Content wrapper-->
<!--begin::Footer-->
<div id="kt_app_footer" class="app-footer">
    <!--begin::Footer container-->
    <div class="app-container container-xxl d-flex flex-column flex-md-row flex-center flex-md-stack py-3">
        <!--begin::Copyright-->
        <div class="text-dark order-2 order-md-1">
            <span class="text-muted fw-semibold me-1">2026 ©</span>
            太卓网<a href="http://www.yexian114.com/">叶县生活网</a> <a href="https://www.wxx86.cn/">编程知识网</a>  <a href="http://www.kcwzh.com/">开创游戏网</a> <a href="https://www.caiding5.net">菜丁网</a><a href="http://cn.office369.com">奥飞商务网</a>  <a href="http://www.zlnznjj.com/">众乐知识网</a><a href="http://www.lhjia.com/">乐活家</a><a href="http://www.nengyuan100.com/">能源100网</a> <a href="http://it.tdroid.net/">泰达科技</a><a href="http://cn.tdroid.net/">太卓开发网</a><a href="http://cn.yuansudz.com/">元素科技网</a><a href="http://www.80hlw.com/">八零商务网</a><a href="http://game.tdroid.net/">土豆游戏网</a>        </div>
        <!--end::Copyright-->
        <!--begin::Menu-->
        <ul class="menu menu-gray-600 menu-hover-primary fw-semibold order-1">
                        <li class="menu-item">
                <a href="/news" target="_blank" class="menu-link px-2">科技资讯</a>
            </li>
                        <li class="menu-item">
                <a href="/jishu" target="_blank" class="menu-link px-2">技术分享</a>
            </li>
                        <li class="menu-item">
                <a href="/kaifa" target="_blank" class="menu-link px-2">程序开发</a>
            </li>
                        <li class="menu-item">
                <a href="/weixiu" target="_blank" class="menu-link px-2">设备维修</a>
            </li>
                    </ul>
        <!--end::Menu-->
    </div>
    <!--end::Footer container-->
</div>
<!--end::Footer-->
</div>
<!--end:::Main-->
</div>
<!--end::Wrapper-->
</div>
<!--end::Page-->
</div>
<!--end::App-->
<div id="kt_scrolltop" class="scrolltop" data-kt-scrolltop="true">
    <!--begin::Svg Icon | path: icons/duotune/arrows/arr066.svg-->
    <span class="svg-icon">
        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
            <rect opacity="0.5" x="13" y="6" width="13" height="2" rx="1" transform="rotate(90 13 6)" fill="currentColor"></rect>
            <path d="M12.5657 8.56569L16.75 12.75C17.1642 13.1642 17.8358 13.1642 18.25 12.75C18.6642 12.3358 18.6642 11.6642 18.25 11.25L12.7071 5.70711C12.3166 5.31658 11.6834 5.31658 11.2929 5.70711L5.75 11.25C5.33579 11.6642 5.33579 12.3358 5.75 12.75C6.16421 13.1642 6.83579 13.1642 7.25 12.75L11.4343 8.56569C11.7467 8.25327 12.2533 8.25327 12.5657 8.56569Z" fill="currentColor"></path>
        </svg>
    </span>
    <!--end::Svg Icon-->
</div>
<!--begin::Javascript-->
<script>var hostUrl = "/static/default/pc/";</script>
<!--begin::Global Javascript Bundle(mandatory for all pages)-->
<script src="/static/default/pc/plugins/global/plugins.bundle.js"></script>
<script src="/static/default/pc/js/scripts.bundle.js"></script>
<!--end::Global Javascript Bundle-->

<!--end::Javascript-->
</body>
<!--end::Body-->
</html>