git的基本使用

git.jpg

git是一个前几年兴起的很好用的版本管理工具,用了半年多了体验还是很不错了,也是现在比较主流的版本管理工具。现在分享一下git的基操,但是最好是要理解好这些命令的作用,否则后果可能很严重(手动滑稽),我自己就有过这样的经历。另外,最好是有Linux的命令基础,没有的话理解起来很吃力。

基本配置

配置全局的邮箱和用户名

1
2
git config --global user.name "云代码托管平台(github、gitlab或者gitee)的用户名"
git config --global user.email "注册的邮箱"

这个也可以在c盘用户的根目录下面打开.gitconfig文件进行配置

image.png image.png

命令里面不加global就只是对当前仓库的配置

生成ssh秘钥对

1
ssh-keygen -t rsa -f 秘钥名称 -C '注册邮箱'

在用户根目录下会生成一个.ssh的文件夹

开始里面会有两个文件,后缀是.pub的是公钥,另一个是私钥

image.png

用记事本或者其他的编辑器打开这个文件,复制其全部内容,以GitHub为例:点击new ssh key

将其粘贴到Key的框框中,手动打码(嘿嘿嘿),然后点击add ssh key就大功告成了

然后在git bash中输入

1
ssh -T git@github.com

如果是这样就表示,添加成功了(只要GitHub上没提示有问题,其实一般都没有问题,这一步可以跳过)

git上传GitHub的基本步骤

第一步、创建一个仓库或者clone一个仓库

从远程仓库clone项目

1
git clone 仓库地址

clone下来的项目会包含版本信息不用再初始化了,直接可以进入第二步

在本地创建git仓库

1
git init

这个命令的作用就是初始化一个git的版本管理仓库

执行完这个命令之后,git bash当前所在的文件夹下面会生成一个.git的文件夹

初始化完之后就可以在这个文件夹下面写项目了,写完项目之后↓

第二步、将文件添加到索引中

将git bash当前所在文件夹下面的所有文件添加到索引中,除了被忽略的(gitignore又有另外一套学问,在这里不详细说了)。

1
git add .

.表示当前文件夹下面的所有文件和文件夹,但是踩过一个坑,git不会将空文件夹加入索引,要添加就要在那个空文件夹下面随便放一个文件可以是.gitignore

可以参考对应的官方文档:

第三步、将索引中的文件提交到本地的版本库

1
git commit -m'提交的信息'

引号里面一般是写这次提交修复了什么问题,或者增加了什么功能

第四步、添加远程仓库地址

1
git remote add 远程仓库在本地的名字 远程仓库地址

远程仓库在本地的名字随便取什么都行,不知道取什么名字的话就origin吧

远程仓库的地址打开github的页面复制

image.png

第五步、从远程仓库同步版本库信息

如果是第一次建立仓库,远程仓库没有东西,可以跳过这步

1
git pull 上一步自己给远程仓库取得名字 分支名

每次pull之前一定要进行前面三步(2-4步),要不然你pull之前改的代码可能就全没了,白改了

这一步也最好放在改代码之前就进行,那么久可以不用进行前面三步了

第六步、将本地版本库的信息提交到远程仓库

1
git push 上上一步自己给远程仓库取得名字 分支名

上传到远程仓库的分支本地也一定要有,否则则会报错

如果没创建分支的话,默认就只有一个master分支

git的版本管理

查看提交过的历史信息

1
git log

回滚到之前的版本

1
git reset --hard 版本哈希值

举个栗子:

image.png

如果你看到了这里,最后再看点东西吧,新人可能会分不清GitHub和git,说一下这个问题。

GitHub就是GitHub,git就是git,这是两个东西。非要说联系的话就是GitHub是基于git的云版本管理仓库,可以很多人一起用一个仓库开发,这就是多人协作,也可以把它当做代码的备份仓库,现在GitHub的私有仓库免费了,可以试试。GitHub和GitLab或者国内的gitee都是差不多的东西,都是基于git的云代码管理仓库。而git就是一个本地的版本控制软件,每次改完代码之后都可以commit提交到本地的版本库,如果哪次改错了很多东西,也改不回去了,这个时候git就派上用场了,可以用git回滚到之前commit过的一个版本。其实git还有很多其他的强大功能,留到下一篇再讲。