Git学习与使用

前言

在团队开发中,代码合并和检查是一项巨大和复杂的工程,这种体力活怎么能让我们操心呢,为了更好地管理源代码,我们很有必要使用开发神器——git。什么是git呢?相信这篇文章能让你相见恨晚哈哈!

版本控制

如果在开发团队中没有使用版本控制,多个开发人员共同负责同一个软件或文档的开发,每个人在各自的机器上有整个软件文档的备份,并对之实施编程开发,在分别完成各自任务之后,再通过文本比对工具将各自机器上的不同版本的程序整合到一台机器上。没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事务性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。
版本控制的目的是实现开发团队并行开发、提高开发效率的基础。其目的在于对软件开发进程中文件或目录的发展过程提供有效的追踪手段,保证在需要时可回到旧的版本,避免文件的丢失、修改的丢失和相互覆盖,通过对版本库的访问控制避免未经授权的访问和修改,达到有效保护企业软件资产和知识产权的目的。
版本控制的功能在于跟踪记录整个软件的开发过程,包括软件本身和相关文档,以便对不同阶段的软件及相关文档进行表示并进行差别分析,对软件代码进行可撤消的修改,便于汇总不同开发人员所做的修改,辅助协调和管理软件开发团队。

版本控制工具

SVN

SVN全名Subversion,即版本控制系统。

SVN是一个跨平台的软件,支持大多数常见的操作系统。作为一个开源的版本控制系统,Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。Subversion 是一个通用的系统, 可用来管理任何类型的文件, 其中包括了程序源码。
SubVersion:实现服务系统的软件。
TortoiseSVN:是SVN客户端程序,为windows外壳程序集成到windows资源管理器和文件管理系统的
Subversion客户端。
SVNService.exe:是专为 SubVersion 开发的一个用来作为 Win32 服务挂接的入口程序。
AnkhSVN:是一个专为Visual Studio提供SVN的插件。

Git

Git是目前世界上最先进的分布式版本控制系统。用以有效、高速的处理从很小到非常大的项目版本管理.

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如最近就迁移到 Git 上来了,很多 Freedesktop 的项目也迁移到了 Git 上。

Git 与 SVN 区别

1、Git 是分布式的,SVN 不是:
这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
2、Git 把内容按元数据方式存储,而 SVN 是按文件:
所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.git 等的文件夹里。
3、Git 分支和 SVN 的分支不同:
分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。Git 分支是指针指向某次提交,而 SVN 分支是拷贝的目录。这个特性使 Git 的分支切换非常迅速,且创建成本非常低。
Git 有本地分支,SVN 无本地分支。在实际开发过程中,经常会遇到有些代码没写完,但是需紧急处理其他问题,若我们使用 Git,便可以创建本地分支存储没写完的代码,待问题处理完后,再回
到本地分支继续完成代码。
4、Git 没有一个全局的版本号,而 SVN 有:
目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
5、Git 的内容完整性要优于 SVN:
Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
git and svn

git概述

git 的工作区域

git 工作区域
(1)工作区:用来对代码进行修改

(2)暂存区

(3)git仓库区

工作区->暂存区 git add 文件名 git add *添加该目录下所有文件

暂存区->仓库 git commit -m “提交描述

git status 查看文件状态

Git 创建仓库

注意 在此之前您需要下载好git哦

(1)新建文件夹,进入到该目录,右键打开git bash
在这里插入图片描述

(2)在文件夹内初始化git(创建git仓库)

命令:git init (会生成一个.git的隐藏文件,该目录包含了资源的所有元数据,其他的项目目录保持不变。)
在这里插入图片描述

(3)仓库中添加文件,需要在该目录下新建一个文件进行测试

step1:提交到缓存区git add 文件名
在这里插入图片描述
step2:提交到本地仓库
在这里插入图片描述
(4)仓库中修改信息

修改完成后按照原来的程序再执行

(5)删除文件

step1:git rm 文件名 如果想要删除文件夹,则添加参数 -r

step2:提交修改:git commit -m ‘提交描述’

(6)删除文件夹
当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用git rm -r --cached 文件夹名称

实例:
git rm -r --cached target 删除target文件夹
git commit -m ‘删除了target’ 提交,添加操作说明

Git远程服务器介绍

GitHub介绍

gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。
gitHub于2008年4月10日正式上线,除了git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目Ruby,on Rails、jQuery、python等。

访问地址: 链接.

gitee(码云)

码云(Gitee)是 OSCHINA 推出的代码托管协作开发平台,支持 Git 和 SVN,提供免费的私有仓库托管。2016 年推出企业版,提供企业级代码托管服务,成为开发领域领先的 SaaS 服务提供商。使用 GitHub 时,国内的用户经常遇到的问题是访问速度太慢,有时候还会出现无法连接的情况。如果你希望体验 Git 飞一般的速度,可以使用国内的代码托管与开发协作平台 —— Gitee。除了访问速度更快以外,Gitee 还提供了免费的私有仓库供个人开发者使用。同时,Gitee 也有着国内数一数二的开源生态,这里有非常多的优秀开源项目和开发者,你可以在这里和他们无障碍地沟通交流,不管是找开源项目还是分享自己的开源项目,Gitee 都是极佳的选择。作为国内代码托管平台的佼佼者,目前已经有超过 500 万名开发者在 Gitee 上托管了 1000 余万个代码仓库,而其提供了研发管理、代码托管、文档管理服务的企业版的服务客户也超过了 10 万家。
访问地址: 链接.

GitHub服务器在国外,所以访问时速度会极慢,在国内的朋友更推荐使用码云。当然也可以配置电脑host文件,提高访问GitHub的访问速度!

Gitee基本概念

(1) 仓库(Repository)
仓库即你的项目,你想在github上开源一个项目,那就必须要新建一个repository,如果你开源的项目多,那你拥有的仓库也就很多

(2) 收藏(star)
仓库主页的star按钮,意思是收藏项目的人数。

(3) 复制克隆项目(fork)
在原项目的基础上新增代码和结构,也可以理解成拿别人的代码进行二次加工。Fork后,会在自己账号下,生成自己的相同仓库

(4) 发起请求(pull request,简称PR)
这个是基于fork的,当其他人改进完代码后,想将这个项目合并到原项目,则这个时候会给你发起一个pull request。如果接受了请求,这个时候就可以拥有改进的项目了

(5) 关注(watch)
即观察,可以随时看到被关注项目的更新

(6) 事务卡片(Issue)
发现代码有bug,但是目前还没成型,需要讨论时使用当别人发现你的问题时,会提个lssue ,其实就是类似于评论。

设置登录的账户信息

用户名和邮箱地址是本地git客户端的一个变量,每次commit都会用用户名和邮箱纪录。

设置用户名:git config --global user.name ‘用户名’

设置用户名邮箱: git config --global user.email ‘邮箱’

命令执行位置:桌面右击->git base here

注意:该设置在gitee仓库主页显示谁提交的文件,如果想要修改用户信息,则将该命令再执行一次
查看设置: git config --list
在这里插入图片描述

如果去掉 --global参数只对当前仓库有效。

git客户端管理远程仓库

目的:备份,实现代码共享

客户端:
(1)建立本地和远程仓库的关系

git克隆操作:将远程仓库的项目复制到本地
命令: git clone 仓库地址
在这里插入图片描述
在这里插入图片描述

如果要更新你的本地仓库至最新改动,执行:
指令:git pull 指定的url
例如:git pull https://gitee.com/nidieshiwo_woshinidie/loginModel.git

(2) 将本地项目提交到git
git push 将本地仓库提交到远程(注意先提交到缓存区,再提交到仓库,最后提交远程)

在团队开发中,一般下班之前需要把自己的代码push到仓库,第二天pull 到其他伙伴最新的代码,从而很方便地进行协同开发。

总结

如果你觉得理解起来比较困难,也不用担心,在实际开发中,一般IDE会提供连接git的操作,很少使用指令进行git管理,大部分使用IDE的git快捷键,操作起来会更加快速便捷!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值