本文旨在帮助大家简单入门Git,木有什么高深东西;)
用浅显易懂的话语解释各种常用git命令
Git简介
什么是Git?
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 -源于百度百科(2020.07.30)
Git来源:
Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git工作流程
我jio(觉)得了解Git的工作流程将有利于我们对Git的学习和认识
简单的画了,大家看看就好,记住其中缓存区和HEAD仓库(后文有写成版本库,大家先这么理解吧) 缓存区后文会经常提到。
Git基本使用
这里先列出几个常用命令方便大家查询(小白可以先跳过看下面解释说明)
命令 | 作用 |
---|---|
git init | 创建新的git仓库 |
git clone xxx | 克隆git仓库(xxx为仓库地址,可以是网络连接,后面会有解释) |
git add (filename) | 将文件添加到缓存区 |
git commit -m “info” | 将文件提交到本地仓库 |
git status | 查看在你上次提交之后是否有修改 |
git branch (branchname) | 创建分支 |
git checkout (branchname) | 切换分支 |
git branch | 列出本地仓库当前所有分支 |
git branch -d (branchname) | 删除分支 |
git push origin xxx | 将本地仓库分支提交到远程仓库 xxx为分支名 |
git pull | 将更新你的本地仓库至最新改动,拉取代码 |
git reset --hard commitid | 回退到任意版本(commitid可使用下面git log查询到) |
git checkout – filename | |
git rm filename | 删除版本库(仓库)中文件 |
git log | 提交日志(我们可以用 --oneline 选项来查看历史记录的简洁的版本) |
… | 更多指令大家可以自己探索,这里简单举例一些(主要原因博主敲不下去了:)) |
下面所有命令均在git bash(git默认安装后在开始菜单里面会有)中运行(Linux直接在命令行运行即可)
创建一个仓库
首先创建一个文件夹,这个文件夹地址就是你本地仓库的地址了。
git使用 git init来初始化一个仓库
这样初始化后文件夹下会出现一个.git的文件夹(部分人可能执行上面步骤后却发现没有.git文件夹原因是因为.git是一个隐藏文件夹,可以使用dir这个命令来查询) 这个目录是用来跟踪版本管理的,所以没事不要改动里面的文件,否则会破坏git仓库。
添加文件 and 提交文件到仓库
首先我们这里需要明白一件事,git只可以跟踪文本文件(代码),它可以告诉你文本文件每次的改动,但是无法跟踪图片、视频这些二进制的文件,虽然可以使用git类版本控制工具管理,但是它无法告诉你每次二进制文件的变动地方。
-
我们先在test这个文件夹下新建一个文本文件名为“README.txt”
-
使用
git add
来将文件提交到缓存区,具体如下图
执行后如果会空出一行且没有任何提示说明添加成功 -
使用
git commit
来将缓存区的文件提交到仓库如下图
其中-m 后的内容为提交备注(注意:内容需要使用’'单引号) -
下面我们可以用
git status
来查询是否还有其它文件没有提交
我们可以看到提示没有文件没有提交到仓库了
如果下面有出现文件名为绿色 说明该文件已经提交到了缓存但并未提交到仓库可以使用git commit
来提交
如果有文件名为红色说明该文件有改动但未提交到缓存区,可以使用git add
提交到缓存区(重复上面步骤)
-
使用
git diff
来看看文件到底进行了那些操作
其中git diff 后面添加需要查询的文件名,会对当前未添加至仓库的文件和仓库中已有文件进行对比。
回退历史版本
方法一:
当我们提交过很多次代码时,要查看提交历史时,我们可以用git log
来查询历史提交记录
如果记录很多的时候看起来可能会很乱,所以可以在git log 后加–pretty=oneline git log --pretty=oneline
这样记录就会从最近的提交到最旧的一次提交排列。
现在我们获取到了提交历史记录,那要怎样回退到历史的版本呢?
我们可以使用 git reset --hard commitid
其中commitid就是上图后面的那段字符串
方法二:
这里我们介绍下 git reset --hard HEAD
可以退回到指定版本,那又要怎么查询版本呢?
可以通过git reflog
命令来查询
查询到了版本号后,我们就可以使用git reset --hard HEAD
(HEAD换成你需要的版本号)命令来指定退回到某个版本 这样有点麻烦,当然如果你记得你提交过次数,也可以git reset --hard HEAD^
这样即可退回到上一个版本。
那如果退回到上上个版本呢?
当然我们可以用git reset --hard HEAD^^
以此类推,那如果有100个历史版本有怎么办呢?这时,我们就可以这样git reset --hard HEAD~100
撤销与删除文件
如果你有坚持看到这里,你会发现,我们一直说到这里都在说怎么添加文件,却从未说过怎么撤销操作,这里我们将介绍一下如果撤销与删除,毕竟
人非圣贤孰能无过
当你无意犯了一个错误,但在提交到仓库前发现了这个问题且使用git status发现还没有commit到仓库,这时就可以使用git reset HEAD filename
把在缓存区的文件撤销
一般有时候开发者会删除一些不需要在使用的文件时,在删除后,当你在使用 git status时,git发现工作区和仓库文件不一致时,就会有提示,这时候可以使用git rm
即可从版本库中删除该文件然后在git commit即可
当然在你误删文件且未使用’git rm’命令的时候也可以使用git checkout -- filename
来恢复到版本库中最后一次提交的版本
仓库分支管理
在我们初始化仓库的时候我们会发现仓库路径后面会出现一个(master),这说明,在我们创建仓库中默认分支为master分支,那我们可不可以自己创建一个分支呢?
答案是可以的,下面先给大家介绍几个关于分支的命令吧。
git checkout -b branchname 创建并切换到该分支
git branch branchname 创建分支
git checkout branchname 切换到分支
git branch 查看当前分支
git merge branchname 合并分支到master分支
git branch -d branchname 删除分支
这里应该还是挺简单的,就简单演示一下吧,不过多解释了。
拉取(克隆)和提交仓库
这里先简单提下吧,后面应该会写一篇git与GitHub或gitee的使用(先给自己挖一个坑)
git clone xxx xxx为远程仓库地址
git remote add origin xxx 关联远程仓库 xxx为远程库地址
git push 将我们的仓库推送到远程仓库
如果有什么问题欢迎大家指正!
本文仅简单介绍了一些git操作,还有更多大家就自己摸索了吧。
在写这篇文章的时候发现自己很多命令忘了。
虽然现在有很多工具都有集成git插件,可视化界面,可我觉得这种最纯粹的方式也应该是不能遗忘的。