协同开发必备神器Git的学习|青训营笔记
这是我参与「第三届青训营 -后端场」笔记创作活动的的第4篇笔记
1.Git是什么
Git是分布式的版本控制系统,即将文件内容的变化记录下来,以便将来对之前文件内容的修改进行查阅。
通过Git就可以更好的关注到变更,了解每个版本的改动,方便对改动代码的检查,做好事故预防措施;其次通过Git可以对之前的错误改动进行回滚,即当事故已经发生也能够及时恢复到事故发生之前的版本。
2.版本控制的发展
本地版本控制——RCS
RCS的原理是本地保存所有变更的补丁集,通过这些补丁,可以计算出每个版本的实际文件内容,其缺点是只能本地使用,无法进行团队协作,使用场景有限。
集中式版本控制——SVN
SVN可以提供远程服务器保存文件,也是通过增量的方式提交Diff,但是当提交的增量与服务器保存的文件存在冲突时,需要在本地提前解决冲突。优势在于学习成本低,操作便捷,同时支持二进制文件,对大文件友好,不足之处在于,本地没有版本控制的机制,所有的提交需要连接到服务器,其次,分支的支持较差,团队合作存在困难,此外,服务器出现故障对版本控制影响极大。
分布式版本控制——Git
Git的每个库都有完整的提交历史,可以直接在本地进行代码提交,其次,每次提交都是完整的文件快照,而不是文件增量,此外,通过push等操作完成与远程代码的同步。优势在于分布式开发,每个库都是完整的提交历史,支持本地提交,强调个体,同时具有强大的分支管理能力,方便团队合作以及协同开发,此外,具有检测和机制保证完整性,不容易导致代码丢失,缺点是,学习成本高,且对大文件不友好。
3.Git操作
user配置:
git config --global user.name "xxx"
git config --global user.email xxx@xxx.com
url修改配置:可以修改ssh协议为https
git config --global url.git@github.copm:.insteadOf https://github.com/
Git命令别名配置:可以简化命令
git config --global alias.cin "commit --amend --no-edit"
Remote配置:修改本地和远程的关联信息
查看Remote:git remote -v
添加Remote:
git remote add origin_ssh git@github.copm:git/git.git
git remote add origin_http https://github.com/git/git.git
将修改添加到暂存区: git add .
将修改添加到Git目录:git commit -m "xxx"
创建新的分支:git checkout -b
总结
git,是一个分布式版本控制软件,最初目的是为更好地管理Linux内核开发而设计分布式版本控制系统的客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复 项目开始,只有一个原始版仓库,别的机器可以clone这个原始版本库,那么所有clone的机器,它们的版本库其实都是一样的,并没有主次之分 所以在实现团队协作的时候,只要有一台电脑充当服务器的角色,其他每个人都从这个电脑上同步协作,我之前在很多项目中用到过git,这次的学习让我更加系统的回顾了git。