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 和 headmaster
master 是初始化时候 默认的 branch,一般称为 主分支;master 和其他 branch 一样,只是有人为的赋予它以下两点特别之处,除此之外我们可以把他看成普通的 branch:
新创建的 repository(仓库)是没有任何 commit 的。在它创建第一个 commit 时,会把 master 指向它,并把 HEAD 指向 master。
当使用 git clone 时,除了从远程仓库把 .git 这个仓库目录下载到工作目录中,还会 checkout master(checkout 是把某个 commit 作为当前 commit,把 HEAD 移动过去,并把工作目录的文件内容替换成这个 commit 所对应的内容)。
网友评论