一、git是什么
如果你开始和别人一起写代码,或者在网络上看过别人写的源码,我相信你一定听说过git。
git是一个代码管理协作工具,和他类似的软件还有svn,不过svn是集中式的,git是分布式的。
git是一代宗师linus花了一个星期开发的分布式版本控制工具(能写出操作系统的人就是不一样),目前已经成为了主流的代码协作工具。
git是一个软件工具,我们可以用它来管理代码,管理方式又分为两种:
- github(已被微软收购)世界范围内协作,如Linux。
- gitlab公司范围内协作,如公司内部项目,需自己搭建。
github和gitlab都依赖于底层的git,git提供了一系列命令或者说操作,用于代码协作。对于这些基本操作,可以采用以下两种方式:
- 命令行
- GUI(一般是用小乌龟TortoiseGit)
![a81b329205d99486c1489160cf948a3a.png](https://i-blog.csdnimg.cn/blog_migrate/e049ff4ee14d0b124fdac08e9584dfe1.jpeg)
二、git使用的基本流程
- 创建仓库或者clone仓库
#在空目录下初始化仓库 git init #根据远程仓库地址克隆仓库 git clone url
2.添加或者阅读readme文件
主要是介绍项目是做什么的。
3.添加或者阅读license文件
主要是告诉别人需要根据什么协议使用你的代码。
4.添加或者查看.gitignore文件
主要是告诉git提交代码的时候忽略哪些文件或者目录
5.开始进行代码编写,并每天进行代码提交
6.每次进行代码编写前,先进行代码更新
![1d6e95cadb32f26bff9db6b3236b34df.png](https://i-blog.csdnimg.cn/blog_migrate/bc30b87c681ae7b11f34433f15d0aeae.jpeg)
三、git的工作原理
git围绕代码储存以及代码更改记录展开。涉及以下几个重要概念:
- 远程仓库远程仓库一般放在团队都能访问的地方,用于大家访问以及合并已经测试通过并且稳定的代码。
- 本地仓库本地仓库是每个开发人员开发的基础,它会和远程仓库建立联系,我们可以把本地的改动提交到远程仓库,让别人看到。也可以把别人的改动更新到本地。
- 分支分支是为了区分不同的改动,或者为了区分不同的功能。我们可以通过分支在同一个代码仓库中维护许多不同的版本。
- 标签标签为我们开发到某一个地方做下了记录,我们可以通过标签回溯到那里,然后新建一个分支继续向前演进。
- push每个人的本地都有一个项目副本,要把自己的改动提交上去让别人看到,就需要push。
- pull要想保持项目最新,同时别人的改动自己能看到,以及避免自己和别人改动发生冲突,改动前就需要pull,保证代码最新。
![d03353c64d5d7727267efe932a377f58.png](https://i-blog.csdnimg.cn/blog_migrate/d4bca39742179058379081be3450520f.jpeg)
四、git基本操作
# 同步远程仓库git pull#添加filename文件git add filename#添加提交描述git commit -m "update"#在当前状态添加tag1.0标签git tag tag1.0#创建dev分支git branch dev#切换到dev分支git checkout dev#列出所有分支git branch -a#显示本地仓库状态git status#提交本地改动记录到远程仓库git push
五、git团队协作基本操作
- 找到项目所在地,github还是gitlab
- fork项目
- 将自己fork的项目克隆到本地
- 新建一个分支,在该分支下进行代码更改或编写
- 编写更改完成后,提交代码,并将新分支的代码合入,同时删除新分支
- 在自己fork的项目里提交merge请求,等待项目拥有者合并
六、其他、
关于其他一些未明说的问题:
- git要想使用需要先下载安装,网上搜索即可,系统一般不自带
- git要想使用一般需要先配置,用户名、密码、代理啥的
- 上传github或gitlab需要先注册账号,有邮箱即可
- 上传代码时如果不想每次都输入密码,就在本地生成一个ssh公钥,并把它上传到github或者gitlab
顺带一提:
我们一直在做的一件事就是想尽办法将xxx和xxx区别开来,编程也是如此。