之前一直使用图形化的 git 客户端工具,导致对 git 的很多原理非常的模糊,这部分文章将依靠 git 命令作为线索,仔细的学习一下 git 的整体操作。
安装git与首次设置
安装 git 的方式有很多,比如 windows 用户通过百度搜索 git for windows ,Mac 用户可以通过安装 Xcode 或者使用 brew 来进行安装,这个就不用仔细讨论了。我们关键来说说使用 git 之前必须进行的设置操作:
1 | $ git config --global user.name "your name" # 希望你__不要__直接在这里写 __“your name”__ |
git 是可以多人协作的版本管理系统,所以能够追查修改者是很重要的,不要乱提交代码哟,可以查到你的。
初始化
每一个项目都应该是从新建一个文件夹开始的,文件夹中包含了一个项目所需要的骨架和各种资源,如果我们已经打定主意这个项目将要通过 git 来进行版本管理和协同操作,那我们就需要通过初始化
命令将项目交给 git 这个管家来负责。
1 | $ mkdir testgit # 创建项目目录,一定记住所有的项目都是被包含在一个目录中的 |
添加文件与暂存区概念
在 git 中的一个重要概念是将文件记录在三个状态中,或者理解为将文件存储在三个特殊的空间里也可以,这三个体现分别是:工作区
和暂存区
和版本仓库
。
所谓工作区正是我们能够看得见摸得着的那部份内容,也就是刚刚建立好的文件夹,我们新建一个文本文件,复制进来一张图片等等诸如此类的操作都是在工作区中进行的,所以我们现在就在工作区中新建一个文件
1 | $ touch hello.txt # touch 命令一般用于生成一个空白文件,我们可以在其中随便写入一些内容 |
当工作区中的文件发生变化后,我们可以通过 git status
来查看一下,此时一般会出现 Untracked files
字样,代表有未被追踪的文件。
此时文件并没有被真的被 git 进行管理,我们需要通过命令将文件加入到 git 的暂存区
中:
1 | $ git add -A # -A 是add命令的参数,代表将所有未追踪的文件加入到暂存区(stage)中 |
每次文件如果发生变化,都会进入到一种 未追踪 状态,所以需要继续通过 add
命令来添加暂存区。
提交与版本仓库
文件进入暂存区只是第一步,或者说暂存区只是文件入库前的一个临时存放地。如果决定文件的修改已经完成,则需要通过提交来确定保存本次版本变化。时刻需要记住,我们伟大的git是一个版本控制系统
,它是一个记录版本变化的系统。所以提交才是最关键的步骤。
1 | $ git commit -m "some message" # -m 是commit命令的参数,代表提交需要记录的信息,一般不要做无意义的提交,而且每次提交都应该记录内容,确保有迹可循 |
这里我们似乎可以理解 git 的一些思路了,工作过程中总是想办法尽量保证暂存区是干净的,保证暂存区干净的两个方法是放弃本次修改或者提交本次修改
放弃本次修改
对于那些已经add
进暂存区的内容,如果要放弃上一次的修改只需要执行git reset --hard <file>
就可以了。
如果有github帐号后应该怎么办?
我想各位应该并不满足仅仅在自己电脑上玩玩 git ,那么是时候将我们的本地仓库弄到网上去了。申请 github 帐号的方法这里就不赘言了。我们一般的操作都是先在在线仓库中新建一个空白的仓库。
现在我们分几种情况来讨论一下
如果你本地也是准备要开启一个新项目的
这种情况最简单了,我们直接将在线的项目clone
回本地,然后在这个目录中干活就可以了。
1 | $ git clone https://github.com/yourgithub/repository.git #这个就是你的项目仓库地址,每个人不同的 。这里要注意,执行这个命令的目录下会出现克隆到的项目 |
然后把你自己的文件复制到这个文件夹里,执行
1 | $ git push |
此时一般会要求你输入github的帐号和密码,如果你的身份验证无误就可以将内容提交线上了。
如果你本地已经有一个项目,但是并没有使用 git 管理
如果是这种情况,那首先要在目录中执行 git init
初始化一下。然后执行1
$ git remote add origin youname@github.com:youname/repository.git
这样就可以将你的远程用户添加到项目中,此后就可以如上面一样进行推送了。