玩过MOBA类型游戏的人应该都能理解,一个人靠谱能做的很好,但一群人靠谱才能走的更远。对于多个程序员协同开发项目想要提高效率,必然离不了一个完善的协同工具,而Git就是协同工具中的佼佼者之一。
Git:开源的分布式版本控制系统,相较于SVN、CVS这样的集中式版本控制系统,分布式对服务器的依赖较小。
适用对象:
注:Git和GitHub并不是一个东西
Git你可以理解为一个软件,可以安装在你的个人电脑、服务器上,并且支持windows,Linux,Mac等主流系统。而GitHub是一个安装了这个软件的服务器,你可以去这个服务器中创建自己的Git项目,并且这个服务器提供很多免费的服务可以去使用。
说的通俗易懂一些我们可以假设Git是一只鸡的话,哪GitHub就是一只香喷喷的炸鸡,你不需要自己加工,直接吃就好了。身为全球最大的同性交友网站(GitHub)我只能用鸡你太美来形容。
自行搭建Git不适用于新手,如果你是初次使用Git,可以看下方使用第三方平台的Git(大多数时候外卖的炸鸡都比自己做的好吃,因为人家是专业的)
Git搭建最好是在服务器上,因为相对于我们个人PC,服务器运行更加稳定,以外情况较少,国内有很多服务器,比如说腾讯云,阿里云,百度云,华为云等等,在这里就对服务器不做过多赘述了。
首先我们在服务器上安装git
centos的安装命令为:sudo yum install git
我之前已经安装完成了
我们最好创建一个新用户用来管理Git,使用默认的root超管创建git会有较大的安全风险。
groupadd Git
创建一个名叫Git的组
adduser -g Git git
创建一个名叫git的用户并添加到Git组中
passwd git
给git用户添加密码
当切换到git用户下后,我们需要初始化一个git仓库
su - git
切换到git用户
git init --bare field.git
初始化仓库(field是仓库名,这个名字根据自己的需要起就好)
这时候仓库就已经搭建完成了,仓库的地址为git@服务器ip:/home/git/仓库名.git
之后同步要用到此地址
完成上述操作后,git可以算配置完成了,但是这时候git同步的时候需要输入密码,比较繁琐,我们可以对指定的人做免密处理。
mkdir .ssh
创建.ssh文件夹
touch authorized_keys
创建authorized_keys文件
vim authorized_keys
打开authorized_keys文件,并将公钥存入其中
可是使用echo ssh-rsa 公钥 >> /home/git/.ssh/authorized_keys
方式来将公钥写入其中
su - root
切换回超管用户开始赋权
sudo chmod 700 /home/git/.ssh/
改变此路径的权限为只有属主有读、写、执行权限。
sudo chmod 600 /home/git/.ssh/authorized_keys
改变此路径的权限为只有属主有读写权限。
vim /etc/ssh/sshd_config
使用vim打开ssh的配置文件
删除下列几行代码的注释(如果在此文件中没有找到可以自行添加)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
service sshd restart
重启ssh服务
这个公钥很重要,GitHub如果需要免密也要用到这个公钥Linux系统免密登陆也需要此公钥
公钥是做免密处理的电脑的公钥,下列演示如何在windows系统中生成公钥,首先打开windows系统的powershell(cmd也可),输入ssh-keygen,然后一路回车,直到执行完毕
执行搭建Git较为繁琐,我们国内常用的Git有GitHub与码云
GitHub简介GitHub:全球最大的同性交友网站。
缺点 :
优势:
功能强大且完善绝大多数功能都能免费使用。 针对学生有非常不错的待遇,GitHub的学生包基本上可以满足绝大部分程序员(比如说免费私有库,免费域名,各种IDE专业版免费使用)GitHub使用较为简单,点击右上角‘+’的创建选择创建新存储库
输入仓库名后即可创建仓库
创建项目结束后GitHub会跳转到一个新的页面上,如下图所示git@github.com:xun-mi-git/auto_look_web_classroom.git
就是GitHub提供的用户名与地址,之后同步项目就是使用此地址,需要记住此地址
打开设置
在设置中选择ssh并填写公钥,如何生成公钥在之前已经说明,再次就不多赘述了
Git下载(新疆等地区可能无法打开,可以在百度上找国内的git资源下载)
和大多数软件一样,先同意协议,然后选择安装路径
下一步推荐如图所示选择
原文 | 翻译 |
---|---|
Additional icons | 附加图标 |
On the Desktop | 在桌面上(在桌面创建图标,基本用不到) |
Windows Explorer integration | Windows资源管理器集成(集成到右键菜单) |
Git Bash Here | 控制台集成到右键菜单 |
Git Gui Here | 图像界面继承到右键菜单(Git的GUI非常难用,不建议使用GUI) |
Git LFS (Large File support) | Git LFS(大文件支持) |
Associate git* configuration files with the default text editor | 将git*配置文件与默认文本编辑器关联 |
Associate sh files to be run with bash | 将要运行的sh文件与bash关联 |
Use a true Type font in all console windows | 在所有控制台窗口中使用true Type字体 |
Check daily for git for windows updates | 每天检查git以获取windows更新 |
这里是Git的默认编辑器,默认是vim,如果你不了解Linux的vim,相信我,vim对于新人来说简直就是噩梦(您可能会因为vim荣获祖安文科状元)。推荐使用vscode(微软的一款非常强大的编辑器,几乎支持所有的编程语言,而且非常小巧)
下一步是有关环境变量的,这里一定要选第二个(默认就是第二个),第二个是允许第三方软件调用Git(比如我常用的pycharm与vscode都带非常棒的git组件,比原生的好用很多)
接下来分别是与安全认证有关的两个,第三个选择控制台时候推荐选择windows控制台,最后一个推荐的三个组件也都是提示效率和安全的,都较为有用,可以全部安装。
同步语法: git clone 仓库地址
需要同步仓库需要在你的电脑中的一个文件夹中(找一个或者新建一个自己能找到的文件夹用于git项目同步),在文件夹中点击右键选择Git Bash Here
或者在powershell中cd到此文件夹中也可
常用git方法 | 作用 |
---|---|
git init | 初始化Git仓库 |
git remote | 查看仓库名称(加上-v参数可以查看仓库详情信息git remote -v ) |
git remote add url | 添加一个远程仓库(git remote)查看当前有哪些分支 |
git add | 将文件添加到本地Git暂存区git add 文件名,可以将新创建的git添加到本地仓库中 git add . : 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件 git add -u : 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new) git add -a : 提交所有变化 |
git commit | 将文件同步到本地分支,git commit 的-m参数非常重要,用来备注本次,比如git commit -m "寻觅的首次同步" |
git push | 将本地数据同步到服务器默认推送到当前分支,可以使用 ‘git push origin 分支名’ 推送到指定分支中。 |
git pull | 从数据库中拉去最新版本(每次去使用项目时候推荐都进行一次拉去) |
对于一个新的空仓库来说,推荐创建一个README.md(git开源项目不成文规定README.md为说明文档,并非强制要求),我当前使用pycharm创建了一个项目并用git控制台同步到一个空仓库。
echo "# 项目名称" >> README.md
git init
git add .
git commit -m "首次同步"
git remote add origin git@ip地址:/home/git/库名.git
git push -u origin master
非空仓库
对于已经有项目的git库我们直接执行git@152.32.251.110:/home/git/text.git
即可拉去
当仓库已经存在本地后就可以用git add
、git commit
、git push
、 git pull
这几个命令同步仓库
分支是一个很常用的功能,我们用的软件,游戏,系统,他们都有不同的版本,比如说:测试版,体验版,稳定版,专业版,免费版,企业版
不同的分支有着不同的功能,有些分支在后期还需要进行合并,比如说测试版在使用测试并修复bug后需要并入稳定版中以供使用。
Git可以创建并合并分支
git分支使用命令 | 作用 |
---|---|
git branch | 查看所有分支,并在当前分支前用*标记 |
git branch [分支名] | 创建分支 git branch 'dev' (ps :dev是development开发英语的缩写) |
git branch -d [分支名] | 删除分支 git branch -d 'text' (ps :dev是development开发英语的缩写) |
git checkout [分支名] | 进入分支 git checkout 'dev' (使用git checkout -b 'text' 可以直接创建并进入分支) |
git switch [分支名] | 与git checkout效果相同(创建并新分支需要使用-c的参数git switch -c 'text' ) |
git merge [分支名] | 将分支合并到master分支上 |
廖雪峰Git教程博客有详细的Git命令行操作的方式,由浅入深非常详细,这里介绍的git使用是面向开发人员的,开发人员只需大致了解这些方法即可使用命令行中的Git,不过作为开发人员我更推荐使用IDE带的有着可视化界面的Git组件。
Git集成组件的使用 vscode的Git组件 pycharm的Git组件