A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 slove160408 于 2019-6-21 08:58 编辑

Git版本库原理
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
创建版本库:
[Shell] 纯文本查看 复制代码
#
创建文件
$ mkdir myapp
#进入文件
$ cd myapp
#初始化代码仓库
$ git init
#把需要提交的所有修改放到暂存区(Stage)
$ git add file
#提交所有文件
#$ git add . 
#提交所有.js格式文件
#$ git add *.js
#强制添加
#$ git add -f file
#提交代码
$ git commit -m "commit info"

查看
[Shell] 纯文本查看 复制代码
#查看历史记录,git log命令显示从最近到最远的提交日志
$ git log
#查看分支合并图
$ git log --graph
#Git提供了一个命令git reflog用来记录你的每一次命令:
$ git reflog
#git status命令用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked到。git status不显示已经commit到项目历史中去的信息。
$ git status
#当暂存区中没有文件时,git diff比较的是,工作区中的文件与上次提交到版本库中的文件。
#当暂存区中有文件时,git diff则比较的是,当前工作区中的文件与暂存区中的文
$ git diff
#比较工作区中的文件与版本库中文件的差异。HEAD指向的是版本库中的当前版本,而file指的是当前工作区中的文件。
$ git diff HEAD -- file

版本回退:
[Shell] 纯文本查看 复制代码
#Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当回退版本较早时可以写成HEAD~100。
#版本回退
$ git reset --hard HEAD^
#取消回退,commitId为你想要回到的未来版本号
$ git reset --hard commitId

撤销修改
命令git checkout ——file 把文件在工作区的修改全部撤销,这里有两种情况:
* 一种是file修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
* 一种是file已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

#文件在工作区的修改全部撤销
$ git checkout --file

删除文件
命令git rm用于从版本库删除一个文件。
如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
#从版本库删除一个文件
$ git rm file

提示:先手动删除文件,然后使用git rm <file>和git add<file>效果是一样的。
转自:https://segmentfault.com/a/1190000019429417

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马