基础概念
- workspace:工作区,本地编辑和调试的代码
- staging area:暂存区/缓存区,git init命令后创建的.git文件中的内容
- local repository:版本库或本地仓库,同样是git init命令后创建的.git文件中的内容
- remote repository:远程仓库
版本管理工具,属于git和svn两分天下的格局,但git大概占据着八成的市场份额。这两者有两个重要的区别,git是分布式,svn是集中式。即svn将所有版本都保存在服务器端,所有压力都在服务器端;git则是将版本都放在各自的客户端上,服务端只是保存着最终版本,这样的好处很明显,就是给服务器减小压力,但其实。。。个人理解:如果出于安全考虑,那么公司还会选用集中式的版本管理。
PS:用过迅雷其实就会发现,它也是采用的分布式的管理,每次下载都会提示你,该资源有多少链接数,数量越多下载越顺畅
三部曲
git init
git add .
git commit -m 'commit message'
git push remoterepository remotebranch
我一开始接触git就听说了该名词,一直记到现在。
执行这些指令都是在项目目录下。
git init
该指令并非三部曲中的指令,但第一次使用的时候,需要使用该命令
见名知义,git初始化,即在本地创建暂存区和仓库,就是那个.git目录
git add .
添加项目至本地的缓存区
git commit -m 'commit message'
将缓存区的内容推送到本地仓库
git push
将本地代码推送到远程仓库,后面跟着远程仓库名和分支名
常用命令解析
git remote add [shortname] [url]
给远程仓库取别名,shortname自定义
git clone [url]
下载远程项目
git fetch
git merge
远程拉取更新到本地,这两个指令组合使用
git branch [branchname]
创建本地分支,一般没必要使用该指令
git checkout [branchname]
切换分支
git diff
查看区别,即想提交的代码与已经push的代码之间的区别。当然如果你使用的pycharm操作,会给你区分的明明白白,该指令一般也不会使用
branch
作为测试人员,我们应该不太有机会使用,得理解分支使用的实际场景。分支是用于一个项目有不同需求并行开发时使用的,而我们在项目开发时,可能会有多人合作的情况,但一般不会出现多个需求并行的情况。当然,硬要用也可以,多人合作时,一个人拉一个branch也不是不可以。
SSH Key
ssh-keygen -t rsa -C "youremail@example.com"
解析:git是分布式版本管理工具,所以需要配置客户端的key,服务器记录下,就可以进行客户端上传代码了。
当然,也可以在本地配置远程的账号密码,进行上传。但一般都是配置ssh key进行git上传代码。
实操
执行key生成指令后,会在当前路径下创建.ssh目录,下面的id_rsa.pub就是我们所需的公钥。
然后配置到服务端即可(gitee示例)