Git的使用
1. 安装Git
去Git官网下载安装包然后无脑安装,笔者这里使用Windows系统
2. 配置文件
安装完后打开cmd输入下面两行命令来配置用户和邮箱
$ git config --global user.name "Howl"
$ git config --global user.email "1210911104@qq.com"
输入完后下面命令查看config
$ git config --global --list
3. 创建本地仓库
新建一个文件夹(笔者这里用LearnGit),在里面打开cmd,然后输入下面命令
$ git init
之后就会发现该目录下多了一个隐藏文件.git,这是git管理仓库用的,千万不要去动它
- 这里先说明一下工作区,缓存区,版本库的区别
我们平时打开文件的任务管理器是工作区,使用add之后是添加到缓存区,使用commit是添加到版本库中(add,commit后面会讲)
4. add /commit/status/rm/diff
在LearnGit目录下新建一个readme.txt文件,里面写入 “第一次使用Git”
- 然后使用下面命令把文件从工作区添加到缓存区
$ git add readme.txt
- 接着使用下面命令把文件从缓存区添加到版本库,其中-m及其后面双引号里面的内容表示提交信息
$ git commit -m "it is my first time to commit"
- 查看文件的状态
$ git status
1 新建文件后查看状态会发现,一个新文件没有被追踪,即没有被add
2 使用add后查看状态会发现,有一个readme文件没有commit
3 使用commit后查看状态会发现,没有需要commit的文件
- 删除文件——删除刚才的newfile文件,之后还需要commit才能把文件从版本库删除
$ git rm newfile.txt
$ git commit -m "delete newfile.txt"
- 查看工作区,缓存区,版本库的区别
这里先创建一个diff.txt,里面写入 “这里是大家共有的”,然后使用add和commit
- 接着往diff.txt添加 “这里是工作区刚添加的” ,先不用add,然后使用下面命令
$ git diff -- diff.txt
会发现有红色和绿色字体,这些代表差异,并且这个命令是比较工作区和缓存的
- 把diff.txt添加到缓存区后再添加到版本库,之后再往里面写入 “这里是工作区添加的”,再使用下面命令
$ git diff HEAD -- diff.txt
同样道理说明,这条命令是比较工作区和版本库的差异
5. 版本回退
1 使用下面命令来查看历史版本
$ git log --oneline
最前面的一串东西是版本号,后面跟着的是提交信息,head代表当前所在版本
2 不知道大家还记不记得,最后面的it is my first time to commit对应的版本,我们只有一个readme.txt文件,当时还没有创建diff.txt文件拿来做对比 ,好了,我们就回退到那个版本
当前目录下的文件是这样的
使用回退版本命令后
$ git reset --hard 0b6aa38
# --hard表示移动到需要回退的版本
是不是就回退了,哈哈哈
3 人就是做作,如果我们回退错了呢?现在又想返回刚才的版本怎么办?没关系,按着下面步骤来
- 输入下面命令,可以看到版本信息
$ git reflog
- 之后再使用回退命令就完事了,可以看到我们上一个版本的版本号是e701464
$ git reset --hard e701464
你看版本就又回退回来了,完美!!!
6. 远程仓库
6.1 把本地仓库添加到Github的远程仓库
1 首先你得创建一个Gihub账号,Github官网
2 然后在Github上创建一个远程仓库,在右上角的 + 号
创建完后会看到仓库的地址,记住他
https://github.com/howlshit/LearnGit.git
3 把本地仓库和远程仓库关联起来,在本地库里运行这个命令
$ git remote add origin https://github.com/howlshit/LearnGit.git
# 后面那串地址就是刚才要你记住的远程仓库的地址
# origin是远程仓库名,默认写法,一般不去动他
4 把本地库内容推送到远程仓库
$ git push -u origin master
# -u 指定origin为默认主机,以后push不用加其他参数了
# git push <远程主机名> <本地分支名>:<远程分支名>,后面不写默认同名
至此就可以看到Github上的远程仓库有本地仓库的内容了
6.2 从远程仓库克隆到本地仓库
1 刚才我们已经把本地内容与远程同步了,现在就来把远程内容克隆到本地,先新建一个文件夹 “CloneRepositories”
2 然后在该文件夹下输入下面命令
$ git clone https://github.com/howlshit/LearnGit.git
会发现远程仓库的内容克隆到本地了