Git系列(一):Git的一些基本操作
前言
不管是在公司开发项目还是和同学小组开发,了解这个世界上目前最先进的分布式版本控制系统都会让你受益匪浅。接下来让我去试着带领大家去了解下他的一些用法。
前期准备-软件安装
Git可以安装在很多操作系统上:
- Linus
- macOS
- Windows
- Solaris
- Raspberry
这里我的例子是在Windows上使用Git,可以去Git官网直接下载安装程序,一直默认选项执行下一步。安装完成后,菜单或者右击桌面会出现'Git Bash'。 安装完成后,还需要最后一步去设置自己的名字以及邮箱地址,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
创建本地版本库
-
首先新建一个文件夹(我这里是gitTest)
-
在文件夹内部右击进入'Git Bash'窗口,保证接下来的操作是针对这个文件夹的
-
执行
git init
命令将这个目录变为git可以管理的仓库 -
如果以上正确的话,文件夹里会出现
.git
目录,如果没有的话可能是隐藏了。可以按下图操作取消隐藏。如果还是没有,请检查上面操作的正确性!! -
接下来在目录里添加文件,我取名为first.txt。文件内容为:
这是第一个文件
。接下来执行git add first.txt
语句,把文件添加到仓库。这一步如果正确不会有任何提示。再通过语句git commit -m '说明'
将文件提交到仓库。这一步如果成功,会告知文件改动情况。如下图:
为什么git add后面要加文件名,而git commit不用呢?因为git add一次是添加一个文件,而git commit把多个git add添加的文件一次提交。 (当然使用git add .
就可以添加所有修改文件)
多次提交后的困扰
前面只是基本介绍,现在我们遇到了真正遇到的情况,你对着刚才那个文档改了很久,有很多个版本,并且分别git add和git commit完了。
- 版本1:
‘这是个文件’
- 版本2:
this is first demo
- 版本3:
this is first demo but it's not new
那么你要怎么快速简单的回退到各个版本呢?作为目前最先进的分布式版本控制系统当然早就已经替你想好了!
-
首先我们可能不记得做了哪些修改,我们需要查看下历史记录,执行语句
git log
这里我们也可以看出git commit -m 后面跟的说明多么重要,写的越详细,你越清楚。还要注意的就是每个记录里的长长的数字,这个是版本号。
-
回退版本需要
git reset --hard HEAD^
命令,如果想回到上一个版本可以用HEAD^,上上版本即HEAD^^,依次类推。这里我们回到上一个版本试下。再点开first.txt文件可以看到内容已经变成版本2的内容了。
-
看似我们已经完成了需求,但其实,我们有可能还会出现,回退到以前版本使用了一段时间后,发现还是原来的版本更好,但用上面的指令已经无法回退到原来的版本。这里就需要借助上面提到的版本号。使用命令
git reset --hard 版本号
。此时再查看first.txt文件,已经变为版本3的内容了
了解名词工作区和暂存区
工作区指的就是本地看得见的那些目录文件,可直接点击修改。在上面我们也说到将文件添加到Git版本库是分为两步的。
- git add一个文件,实际就是从工作区目录添加到暂存区
- 通过git commit把文件提交到当前分支,实际就是从暂存区里的文件都提交到当前分支
管理修改
我们很经常会发现自己在文档中的一些错误,有些你可以直接打开文档删除某一行,但有些已经提交,显然无法再删除某一行。这里Git提供了一条语句 git checkout -- readme.txt
,它的作用就是放弃工作区的修改,有两种情况。
- 文件自修改后还没有放到暂存区,执行语句后就回到和版本库一样的状态。
- 文件已经添加到暂存区,再进行修改。执行语句后,就回到这个文件一开始添加到暂存区时的状态。
总的来说就是回到上一次git commit或者git add的状态
当然我们还有可能遇到已经把错误提交到暂存区了(跟上面第二种情况不同,是存储在暂存区里的已经有错误了),这个时候同样也有命令 git reset HEAD <file>
,可以把暂存区的修改回退给工作区,这时候再执行上面的操作去放弃更改。这样我们还是成功的把bug拦截住了。
删除文件
我们会很经常的去删除一些文件,删除后通过 git status
语句我们可以清楚看到哪些语句被删除了。
文件被删除有两种情况:
-
这个文件真的不需要了,我们在版本库里也需要删除。那我们就用语句
git rm
,再通过git commit
提交 -
这个文件是被误删的,我们需要还原,执行语句
git checkout -- <file>
,这样就可以把文件还原到版本库里最新的版本。当然,没提交到版本库的文件是不能回恢复的。
小结
Git已经把能想到的情况都给你处理好了,剩下的就是去熟悉的使用这些语句,去达到各种效果。接下来会带领大家搭建gitHub,这个网站就是提供Git仓库托管的,所以我们需要一个账号,就可以免费获得Git远程仓库。以及带大家了解一些Git对分支管理的处理方式。敬请期待。
转载自:https://juejin.cn/post/6904164332704104455