Git (一)

2020-11-30  本文已影响0人  _1633_

Git 工作区域

四大工作区域及常用操作

        Workspace:  电脑本地的文件和目录,通过 Git 的 版本控制,构成了工作区域;

        Index Stage: 暂存区,一般在 .git 目录下,又叫待提交更新区,用于临时存放你未提交的改动,比如 git add 命令,就是将改动添加到这个区域;

        Repository:  本地仓库,git clone 命令 就是将远程仓库克隆到本地仓库,它是管理历史记录的本地版本库,当执行 git commit 就是将 暂存区的文件改动 提交到本地仓库;

        Remote: 远程仓库,比如 github。


git 工作流

        一般情况下

            1 从远程仓库拉取代码;

            2 在工作目录进行开发;

            3 将改动文件放入暂存区 git add;

            4 将暂存区文件提交到本地仓库 git commit;

            5 将本地仓库的文件推送到远程仓库。

git 常用命令及工作流

HEAD、master 和 branch

    每次 commit 提交的时候,我们都可以通过 git log 来查看历史提交记录;

git log

    括号中的 HEAD -> dev, origin/master, master 是几个指向这个 commit 的引用;在 Git 中 我们经常需要对指定的 commit 进行操作,比如 回退;那么我们就需要区别每次的 commit, 也就是上面一串字符串,每一个 commit 都有一个它唯一的指定方式——它的 SHA-1 校验和。我们可以通过这个字符串来指定这次的提交记录。

    HEAD

        它是 指向当前 commit 的引用,它指的就是当前工作目录所对应的 commit。

        每次当有新的 commit 的时候,工作目录自动与最新的 commit 对应;同时,HEAD 也会转而指向最新的 commit。当使用 checkout、reset 等指令手动指定改变当前 commit 的时候,HEAD 也会一起跟过去

        当前 commit 在哪里,HEAD 就在哪里,它是一个永远自动指向当前 commit 的引用,所以你可以用 HEAD 来操作当前 commit它具有唯一性,每个仓库中只有一个 HEAD。

    branch

         branch(分支)是 Git 中的另外一种引用,HEAD 除了可以指向 commit,还可以指向一个 branch,当它指向某个 branch 的时候,会通过这个 branch 来 间接 地指向某个 commit;当 HEAD 在提交时自动向前移动的时候,HEAD 会带着它所指向的 branch 一起移动。

        我们可以把一个 branch 理解为从初始 commit 到 branch 所指向的 commit 之间的所有 commits 的一个链;

        Git 的所有 commit 提交,会连成一条时间轴线,这就是分支。如果当前分支是master,HEAD指针一般指向当前分支,如图:

branch 和 head

master

        master 是初始化时候 默认的 branch,一般称为 主分支;master 和其他 branch 一样,只是有人为的赋予它以下两点特别之处,除此之外我们可以把他看成普通的 branch:

        新创建的 repository(仓库)是没有任何 commit 的。在它创建第一个 commit 时,会把 master 指向它,并把 HEAD 指向 master。

        当使用 git clone 时,除了从远程仓库把 .git 这个仓库目录下载到工作目录中,还会 checkout  master(checkout 是把某个 commit 作为当前 commit,把 HEAD 移动过去,并把工作目录的文件内容替换成这个 commit 所对应的内容)。

上一篇 下一篇

猜你喜欢

热点阅读