系列文章目录
第一章 git的基本操作
目录
前言
这篇文章主要记录第一天学习的一些基本操作。
0.很重要的一些git命令行指令
git clone +"..." 克隆仓库到本地
ls 查看文件夹
ls -af 列出目前工作目录下所有文件及目录;目录于名称后加 "/", 可执行档于名称后加 "*"
git remote -v 查看本地仓库所关联的远程仓库的信息
git status 查看这个仓库的状态(别忘了先cd 仓库目录)
git add 文件名 将修改过的文件添加到暂存区
git restore --staged 文件名 将添加到暂存区的文件恢复到工作区
git diff 另一个追踪指令,将追踪修改文件的详情
git commit 提交
git branch -avv 查看各分支情况
1.github网站操作
注册和登录就不说了,这个用vpn快一点,主要说一些概念,大多数是从知乎上学的,在这里简单记录一下 :
① Repository
就是仓库的意思,可以理解为项目的文件夹
可以将网站上的repository克隆到本地文件夹,也可以将本地代码通过git版本控制上传到github托管
② Watch 就是关注一个项目
③ Star 点赞收藏
④ fork 复刻派生别人的好项目
⑤ Issue 讨论区留言区
2.怎么从网站上把仓库clone下来
在本地文件目录下面右键GIT BASH HERE打开命令行工具,直接输入git clone +仓库链接就可以啦。但是经常会出现链接超时,这个也没搞清楚为啥
当我们在 GitHub 上创建一个仓库时,同时生成了仓库的默认主机名 origin,并创建了默认分支 master。GitHub 可以看成是免费的 Git 服务器,在 GitHub 上创建仓库,会自动生成一个仓库地址,主机就是指代这个仓库,主机名就等于这个仓库地址。克隆一个 GitHub 仓库(也叫远程仓库)到本地,本地仓库则会自动关联到这个远程仓库,执行 git remote -v
命令可以查看本地仓库所关联的远程仓库信息:
3.git仓库的三大区域
Git 本地仓库有三大区域:工作区、暂存区、版本区。这是一个概念,有这个了解即可,随着使用 Git 的时间增多,慢慢就会理解这三个区域的作用以及为何要这么设计,学习阶段只需按照文档逐步操作即可。接下来我们以命令为主线介绍 Git 的操作。
注意,所有 Git 命令都以 git
开头。
4.一次完整的修改、提交、推送操作
首先,进入仓库主目录,执行 git status
查看整个仓库的状态:
4.1 对工作区进行修改
创建一个文件并再次查看仓库状态,这步操作是在工作区中:
如上图所示,新建文件后,命令行前缀又发生了一些微小的变化,红色 master 后面出现了 *
星号,这表示工作区或暂存区有变化,对文件进行增删改操作都会出现这个星号,另外使用 git status
命令亦可查看详情。
4.2 添加修改到暂存区以及撤销修改
按照上图的提示,使用 git add [文件名]
命令跟踪此新建文件,即把新增文件添加到暂存区,以备提交:
如果对多个文件或目录进行了增删改,可以使用 git add .
命令全部添加到暂存区。
注意这里有个概念,当我们修改了工作区,git add
命令是将这些修改添加到暂存区,暂存区记录的只是修改。如果要撤销暂存区的修改怎么办?根据上图的提示,执行 git reset -- [文件名]
或者 git rm --cached [文件名]
命令即可:
上图的命令,如果省略最后的文件名,把命令写成 git reset --
即可把暂存区的全部修改撤销。好,现在暂存区的修改被撤销,又回到了工作区。
4.3查看提交历史
接下来,将执行 git commit
命令把暂存区的修改提交到版本区,生成一个新的版本。
在此之前,先介绍另一个命令 git log
,它用来查看版本区的提交历史记录,当前只有一个提交,就是在 GitHub 上创建新仓库时的初始化提交。同样此命令也会跳到新页面,如下图所示:
关于查看提交历史记录的命令,有些常用的选项介绍一下:
git log [分支名]
查看某分支的提交历史,不写分支名查看当前所在分支git log --oneline
一行显示提交历史git log -n
其中 n 是数字,查看最近 n 个提交git log --author [贡献者名字]
查看指定贡献者的提交记录git log --graph
图示法显示提交历史
4.4配置个人信息
接下来需要对 Git 进行一些本地配置:
user.email
:写入你自己注册 GitHub 账号的邮箱user.name
:你自己的 GitHub 账号名字
这两个命令设置你的身份信息如下图。git config -l
可以查看配置信息:
完成后,系统自动生成 Git 的配置文件,就是主目录中的隐藏文件 .gitconfig
:
这个地方sslVerify代表什么问题,怎么解决?
4.5提交暂存区的修改
现在执行 git commit
命令生成一个新的提交,一个必须的选项 -m
用来提供该提交的备注:
提交后,暂存区的修改被清空,执行 git log
查看提交记录,紫色框中的十六进制序列号就是提交版本号,这是很重要的信息,每个提交都有自己单独的版本号,就像公民身份证号一样:
观察上图的提交信息,提交版本是按时间倒序排列的,也就是最近的提交排在最上面,你可能需要查看时间正序排列的信息,那么可以使用 git log --reverse
命令。
现在介绍一个超级实用、使用频率极高但几乎所有 Git 教程都不重视的命令 git branch -avv
,它用来查看全部分支信息:
上图有三行信息,依次说明:
第一行,开头的星号表示当前所在分支,绿色的 master 是分支名,之所以是绿色,也是因为它是当前所在分支。后面第二项是版本号,第三项中括号里面蓝色的字,表示此分支跟踪的远程分支的名字,当然啦,这也是克隆远程仓库到本地时的默认设置 -- 创建 master 分支并自动跟踪远程同名分支;冒号后面黑色文字表示本地分支领先其跟踪的远程分支一个提交。最后一项是提交时填写的备注信息。
第二行,是 Git 指针信息,它指向远程仓库的 master 分支,这行信息暂不重要。
第三行,远程分支信息,详见第一行的解释。
在执行 commit
命令时,再介绍一个我并不推荐的选项 -a
,它的作用是将未添加到暂存区的修改,也就是工作区的修改也一并提交,但会略过未被跟踪的文件,比如新建文件 one.txt,此命令的完整格式:git commit -am xxxxx
。谨慎的做法是按照前文的顺序,修改工作区 - 提交到暂存区 - 随时使用 git status
查看仓库状态 - 将暂存区的修改提交到版本区生成一次新的提交。
最后一个环节,将本地新增的提交推送到 GitHub 远程仓库中,命令是 git push
,后面不需要任何选项和参数,此命令会把本地仓库 master 分支上的新增提交推送到远程仓库的同名分支上,因为当前所在的分支就是 master,而且上文提到,它已经跟踪了远程仓库的同名分支:
此命令需要再次输入你的 Github 用户名和密码,密码为隐藏数据,输入时看不到。推送成功后执行 git branch -avv
查看分支情况:
如上图所示,本地分支 master 与远程分支 origin/master 的版本号一致,通常看两个版本号是否一致,只需比对前四位。看一下网页上的情况:
以上就是一次完整的修改 - 提交 - 推送操作。一次推送中可以包含多个 git commit
操作,也就是多个提交可以一起推送。
总结
今天主要就先学习这么多,下次学习版本回退、处理commit时间线分叉、本地仓库commit变化记录。