前言
近期项目改动比较频繁,一直有一些困扰。
- 对于大的改动有时候真的会忘记自己改了什么;
- 有时候开发哥哥会问这个文件具体改了哪几句话。每次在找这些的东西都觉得浪费时间却又不得不去做...
- 一个不小心把文件替换了找不回来了...
- 多人协作的时候,很有可能会丢失代码
所以一直想找办法解决,后来就看到了Git
Git是什么
Git是分布式版本控制系统。
那什么是版本控制系统?
如果你用Microsoft Word写过长篇大论,就一定有这样的经历:
想删除一个段落,但又怕将来想恢复找不回来,怎么办? 有办法,先把当前文件“另存为...”一个新的Word文件,再接着改,改到一定程度,再“另存为...”一个新的文件,一直这样改下去,最后会有很多个Word文档...过了一周,想找回被删的文字,已经不记得保存在哪个文件里了,只好再一个个文件去找!!
看着一堆乱七八糟的文件,只想保存最新的一个,但是又怕哪天会用上,不敢删。更要命的是有些部分需要你的同事帮助填写,可能同时都在改动同一个文件,在收到她文件的期间你还得回忆自己改动了什么。Git就完美的解决了这些问题。
在这里就不介绍分布式跟集中式版本控制有什么区别了,直接进入主题啦。
Git配置和使用(SSH设置)
第一步 首先得有个GitLab账号
了解了一下公司是有自己的GitLab仓库的,我是需要在公司的大仓库下建立自己的小仓库;所以找公司的同事帮忙开了一下GitLab账号;
第二步 生成SSH Key
Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git需要配置SSH;gitLab的SSH配置如下:
- 设置Git的username和email:
<!--
用户名 zhangsan
邮箱 zhangsan@xxx.com
-->
$ git config --global user.name "zhangsan"
$ git config --global user.email "zhangsan@xxx.com"
- 查看是否已有ssh密钥:
cd ~/.ssh
如果没有密钥则生成密钥:
$ ssh-keygen -t rsa -C "邮箱地址"
按三个回车,密码为空。
第三步 Git服务器配置SSH Key
把id_rsa.pub里面的密钥放到Git上去。
第四步 使用Git
在本地目录创建一个Git文件夹,右键空白处选择Git Bash here,把服务器的项目复制到本地;
<!--
项目地址 git@gitlab.xxx.cn:xxx/test.git
-->
git clone git@gitlab.xxx.cn:xxx/test.git <!--克隆该项目到本地-->
cd test
touch README.md <!--添加README.md文件-->
git add README.md <!--把README.md文件暂存在git中-->
git commit -m "add README" <!--提交到本地仓库-->
git push -u origin master <!--提交到网络中-->
Git可视化工具(SourceTree)
对于新手来说命令行记不住!怎么办?
这时候就需要用到Git的可视化工具,这里我用的是SourceTree,当然也是要设置ssh的,在工具-> 选项 -> 一般 里面,选择OpenSSH及本地的id_rsa文件即可。
我也遇到了一个坑!就是把Git上的文件夹导入的时候显示是一个无效仓库!!后来发现是Git没有打开,也是在工具 -> 选项 -> Git 选择启动Git即可愉快的操作了~
SourceTree常用功能
SourceTree导入现有的仓库
“文件” -> “克隆/新建” -> 输入对应信息 -> 点击“克隆”
SourceTree把本地文件推送到Git仓库中
-
暂存文件(当文件更新时,在SourceTree中即可看见未暂存文件)
-
暂存所有文件,输入更新描述,点击“提交”
-
把本地更新推送到Git仓库中
SourceTree分支管理
开发哥哥说每次大变动需新建一个新的分支,在新的分支更新相应文件,这样比较方便代码管理。
新建分支就直接点击“分支”即可新建一个分支