Git是一个分布式版本控制系统,用于敏捷高效地处理任务。
一、安装
二、Git版本控制的文件位置构成
- 工作区:你的工作目录,实际上持有的文件。其实就是本地文件,对文件的创建和修改在本地进行。
- 暂存区:使用git add命令之后,工作区文件会在暂存形成一份快照,它是工作区和本地仓库的桥梁。工作区的内容也可以从此处进行恢复。
- 本地仓库:在工作目录中git init后形成本地仓库。使用git commit命令后将暂存区中的快照文件版本保存到此处,如果文件没有保存到暂存区,将不能利用commit命令保存到本地仓库。包括HEAD部分,HEAD指向你最后一次提交的结果。
- 远程仓库:git push命令将本地仓库文件提交到远程仓库。
三、工作流
一般来说,方向顺序依次为工作区、暂存区、本地仓库、远程仓库。
特殊地,可以用‘git checkout -- file名’将工作区的文件内容覆盖为暂存区的文件内容。使用‘git rm --cached file名’取消对文件的跟踪状态。
四、本地仓库
- HEAD指针
在终端输入‘git log’可以查看提交到本地仓库的历史记录。提交次数多的话可以使用‘git log --pretty=oneline’,显示更清晰。
例输入命令后显示如下:
a0c399145bb7b413a54593ca0f11c3e1eda2ef83 我被修改了
65b88a34150e77b3ba6122238fd1e6b4609f0e85 我刚创建
由上结果可知,提交了两次。前面的字符串表示commit id。在git init创建本地仓库后,会同时自动创建一个master分支,master分支当前版本用指针'HEAD'表示,上一个版本用'HEAD^'表示,上上个版用'HEAD^^'表示。更网前的版本用‘HEAD~数字’表示。
特别地,HEAD~0表示当前版本,HEAD~1表示上个版本。
可以通过‘git rev-parse HEAD’命令获取最新一次的版本号,也可以通过‘git rev-parse --short HEAD’获取七位短版本号。
- 利用仓库当前版本的文件覆盖暂存区文件内容:
git reset HEAD 文件名 - 将暂存区文件覆盖为仓库文件上一版本内容:
git reset --hard HEAD^,或者先查看上一版本号,再利用git reset --hard 版本号指令。 2.分支管理 - 分支切换
使用‘git branch’查看当前分支,显示:
* master,其中符号‘*’表示当前分支。使用‘git branch 分支名’创建新的分支。如‘git branch branch_1’后,再利用‘git checkout branch_1’将当前分支切换到‘branch_1’。查看当前分支情况'git branch'后,显示为:
$ git branch
* beta_v1
master
- 分支合并 在不同分支上修改文件内容不会影响另一分支的情况,除非使用‘git merge 分支名’,才会将分支名上的文件内容覆盖当前分支的文件。