Git学习教程一之安装Git&&&本地仓库建立
一. 安装git
1:在Windows上使用Git,可以从Git官网直接下载安装程序,(网速慢的同学请移步国内镜像),然后按默认选项一直安装即可。
2:安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
3:你得在git中自报家门,输入你的名字以及email
$ git config --global user.name "Your Name"
设置你的用户名字
$ git config --global user.email "email@example.com"
设置你的用户邮箱
设置完成之后,检验一下你的名字和email是否设置正确
$ git config user.name
将会输出你刚才设置的用户名字,如果不对,请重新按照上述设置用户名
$ git config user.email
将会输出你刚才设置的用户邮箱,如果不对,请重新按照上述设置用户邮箱
至此,你的git已经安装并且设置完成
二. git创建本地仓库
1:打开git中的gitbash命令台
2:创建本地仓库并将其设置为git可管理的仓库
$ mkdir learngit # 创建本地仓库learngit $ git init # 使之变成git可以管理的仓库 Initialized empty Git repository in C:/Users/ltj/.git/ # 控制台告诉我们:这是一个空的仓库 $ pwd # 告知我们当前的仓库目录
3:此去文件管理中可查看到在该目录之下创建了一个文件(本地仓库):learngit
三. 添加文件以及提交文件
讲述这个之前我们需要先了解一下git的工作原理:
git总共分为3个部分工作区(也就是平常我们修改工作的地方),暂存区(暂时存放工作内容的地方stage),本地仓库(master)。接下来开始学习:
添加文件到Git仓库,分两步:
1:添加文件至暂存区
$ git add readme.txt # 添加文件readme.txt至暂存区
2:提交文件至本地仓库learngit
$ git commit -m "first" # -m后面跟随的是输入的是本次提交的说明
# git commit该命令是将暂存区的所有内容提交至本地仓库learntgit
备注: git commit 只是将暂存区的所有内容提交至仓库中,而工作区的内容是不会被提交的。
举例:
1:你将文件1从工作区提交至暂存区,之后再本地修改文件1--->文件11。使用git commit 之后将提交文件1至仓库,则工作区的文件11内容不会被提交
2:你将文件1和文件2从工作区都提交至了暂存区。使用使用git commit 之后将同时提交文件1和文件2至仓库
四. 撤销修改
忽然发现自己写乱了一大堆代码&&也忘记了做的更改,此时我们需要将工作区的内容完全的丢掉,则使用以下命令即可
$ git checkout -- readme.txt # 将版本库里的readme.txt内容重新替换工作区的文件readme.txt
不幸的是,我们刚才写乱的一大堆代码已经被提交至了暂存区,那么需要先将暂存区的内容重新放回至工作区。
之后再使用git checkout -- <file> 恢复内容即可
$ git reset HEAD readme.txt #将暂存区的内容恢复至工作区
$ git checkout -- readme.txt
很不幸,你还将错误的内容提交至了本地仓库。那么就需要回退版本了,参考接下来讲述的版本回退
更不幸的是,你讲他推送至了远程仓库,那么所有人都会拉取到你的错误的代码了。不能再进行回退了。所以,保重吧!!
五. 版本回退
工作过程中,我们修改了无数个版本。每一个版本都被提交至仓库。
我们首先来看看我们总共有几个版本:
$ git log # 使用该命令查看近期的修改过的版本 commit 05624fef1a62febc03d9970e23877f57ad2559f0 (HEAD -> master) # 最近的一次修改以及该数字为本次修改的id Author: linjing.guo <linjing.guo@11.com> Date: Fri Oct 11 15:56:38 2019 +0800 add test.txt commit 8a6ef3ab67fcba55d343b7789a2e63c4c95bfb36 # 倒数第二次修改以及该数字为本次修改的id Author: linjing.guo <linjing.guo@11.com> Date: Fri Oct 11 14:28:54 2019 +0800 seconed commit 84f30444837558ecf3c054ec09429b13a79477c5 # 倒数第三次修改以及该数字为本次修改的id Author: linjing.guo <linjing.guo@11.com> Date: Fri Oct 11 14:21:23 2019 +0800 first
某一天,我们发现最近的版本出现了错误,此时需要回退至上一个版本了,则使用命令git reset --hard HEAD^即可回退到上一个版本。回退之后再来git log看看我们现在的版本,已经成功的回退到了上一个版本。
$ git reset --hard HEAD^
$ git log
commit 8a6ef3ab67fcba55d343b7789a2e63c4c95bfb36 (HEAD -> master)
Author: linjing.guo <linjing.guo@11.com>
Date: Fri Oct 11 14:28:54 2019 +0800
seconed
commit 84f30444837558ecf3c054ec09429b13a79477c5
Author: linjing.guo <linjing.guo@11.com>
Date: Fri Oct 11 14:21:23 2019 +0800
first
问题又来了,如果我们想要回退到倒数第2次的版本呢,当然会有更简单的方法:git reset --hard (commit_id),回退到哪个版本的id时,id名字不用写全,写前几个可以让git辨别出来就可以了,但是不要只写一个啊,只写一个的话,可能会有2-3或者更多版本都会匹配到该数字
$ git reset --hard 8a6ef3
如果你说我已经从第5个版本回退到第2个版本了,这时候用git log只能查看到第一个版本和第二个版本的id了。那么中间缺少的几个版本怎么查看id呢?就回不去了吗?当然,是不可能的
这时候就需要用到git reflog来查看中间3,4,5的版本id号了,如果你想在跳转过去的话,仍旧使用上述命令git reset --hard (commit_id).
$ git reflog
$ git reset --hard 05624fe
总结:查看版本id时,使用 git log 查看当前版本之前的所有修改
使用 git reflog 查看当前版本之后所有的命令历史,会有版本id哦
六. 删除文件
如果我们删除了某个文件,再使用 git status 查看当前的状态时,会提示某个文件已经被删除
接下来我们会有两种选择
1:该文件是被误删除了,此时需要从仓库中创建出新的出来。则使用命令 git checkout 即可
$ git checkout -- test.txt
2:该文件就是应该被删除,此时就需要使用git命令来删除该文件并且将其提交到仓库中
$ git rm test.txt # 删除文件test.txt rm 'test.txt' $ git commit -m"delete test.txt" # 将此次删除提交至仓库中 [master b5cd676] delete test.txt 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 test.txt