一、Git(分布式版本控制系统)
1.概念:
Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持(wingeddevil注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样。并且在push和pull的时候和服务器端还是有交互的。),使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。
2.特点:
- 分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。
下图是经典的git开发过程。
- Git的功能特性:
从一般开发者的角度来看,git有以下功能:
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:
1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员。
3.优点:
- 适合分布式开发,强调个体。
- 公共服务器压力和数据量都不会太大。
- 速度快、灵活。
- 任意两个开发者之间可以很容易的解决冲突。
- 离线工作。
4.缺点:
- 资料少(起码中文资料很少)。
- 学习周期相对而言比较长。
- 不符合常规思维。
- 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
二、Github
1.概念:
GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。
2.功能:
- GitHub可以托管各种git库,并提供一个web界面,但它与外国的SourceForge、Google Code或中国的coding的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
- GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私
有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并不如此。Chris Wanstrath,GitHub的开发者之一,肯定了通过付费的私有库来在财务上支持免费库的托管这一计划。
三、git和GitHub的区别
-
主体不同
1.github:是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管。
2.git:是一个开源的分布式版本控制系统,可以有效、高速地处理从很小百到非常大的项目版本管理。度 -
功能不同
1.github:以托管各种git库,并提供一个web界面,但与外国的SourceForge、Google Code或中国的coding的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。
2.git:开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。 -
特点不同
1.github:主要用Rails实现。我版们在进行的post-commit集成小应用完全使用Merb编写。我们使用了Python的Pygments来做格式高亮显示,另外,还用了Ara T. Howard’s Bj加上一些Ruby脚本来做我们的排队系统。
2.git:适合分布式权开发,强调个体。公共服务器压力和数据量都不会太大。速度快、灵活。任意两个开发者之间可以很容易的解决冲突。
四、在idea中集成GitHub
1.安装git客户端(windows版本)
- Git是目前比较流行的一个版本管理工具(以前使用SVN作为版本控制工具),在企业开发中使用非常普遍,IntelliJ IDEA也对集成Git客户端提供了很好的支持,在IDEA中配置Git之前,首先要在自己电脑上安装Git客户端工具。
- 登录git的官方网站下载windows版本的git客户端:
https://git-scm.com/download/win
- 由于我的电脑是64位的操作系统,所以我下载的是64-bit的版本,请根据自己的操作系统下载对应的版本进行安装。
- 下载好git客户端到本地磁盘上,是一个名为Git-2.15.1.2-64-bit.exe的可执行文件,双击即可安装,安装过程也是非常的简单,一路点击next(下一步)直到安装完成:
- 注意,要记住自己把git安装到了磁盘的哪个目录下,后面在IDEA中进行配置git的时候需要用到。我将git安装到了D:\java\Git目录下。git安装完成后,在桌面上点击鼠标右键,如果能看到"Git GUI Here"和"Git Base Here"这两个命令,说明git客户端安装成功。
- 可以选择"Git Base Here"打开一个git的命令行窗口,输入"git --version"目录来查看git的版本:
Git初始化及仓库创建和操作:
Git安装之后需要进行一些基本信息设置
1.设置用户名:git config – global user.name ‘你再github上注册的用户名’;
2.设置用户邮箱:git config – global user.email ‘注册时候的邮箱’;
3.查看配置:git config --list
注意:git config --global 参数,有了这个参数表示你这台机器上所有的git仓库都会使用这个配置,当然你也可以对某个仓库指定不同的用户名和邮箱;
初始化一个新的git仓库:
1.mkdir demo
2.cd …/demo
3.git init
向仓库中添加、修改、提交文件:
1.touch ‘文件名’
2.git add ‘文件名’(添加到暂存区,最后提交操作)
3.git commit -m ‘备注’
删除文件:
git rm ‘文件名’
Git、GitHub配置SSH:
- 查看ssh key **:cd ~/.ssh;
- 生成秘钥:ssh-****** -t rsa -C “your email”(直接回车,之后会让你输入github的账号密码,在你的电脑中找到该文件,id_rsa文件即是你的私有**,id_rsa.pub是共开**);
- 打开你的id_rsa.pub文件,复制下里面的内容,然后登录进去你的github,找到右上角的图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,
最后点击Add SSH key,这样就完成了SSH Key的加密。具体步骤也可看下面:
- 测试SSH链接:ssh -T [email protected]
2.在IDEA中配置Git
- 通过在IntelliJ IDEA开发工具中配置Git客户端,可以使用IDEA提供的图形化命令来管理git服务器上的代码,比如可以从git服务器更新代码、向git服务器提交代码以及解决版本冲突等,功能非常强大,所以即使你不懂git命令也可以熟练操作。
- 要配置git,首先需要打开IDEA的Settings(配置)窗口,有3种打开方式:
(1)在欢迎界面,点击右下角的齿轮图标Configuration,在下拉菜单中选择Settings;
(2)选择菜单栏File->Settings;
(3)使用快捷键Ctrl+Alt+S; - 打开Settings窗口之后,在左侧展开Version Control,选择Git,然后在右侧选择自己刚才安装好的git的安装目录中的bin目录下面的git.exe可执行文件:
- 点击右侧的“Test”按钮,如果弹出如下提示,说明IDEA中的git配置成功:
3.在IDEA中配置Github
- 只有在IDEA中配置好了Git,才可以配置Github,因为Github是依赖于Git客户端的。
- 使用快捷键Ctrl+Alt+S打开Settings配置窗口,在左侧找到Version Control,展开后选择GitHub,然后在右侧Auth Type选择Password,表示通过用户名和密码的方式配置GitHub,填写好github的官方域名以及自己的github用户名和密码之后,点击右边的“Test”按钮进行测试:
- 点击“Test”按钮之后,如果弹出如下提示,说明在IDEA中github配置成功:
部分内容转自:http://kuaibao.qq.com/s/20171231G03RND00?refer=cp_1026
4.将本地代码上传到Github中
4.1 Idea 中创建 Git 仓库:
-
在Idea 里面,依次点击 VCS → import into version control → create git repository
-
选择相应的文件夹, 点击 ok
-
此时,文件夹里面的文件名全部变成 红色
-
去文件夹下面可以看到,有个 .git 文件夹
4.2将 Idea 上面的代码提交到本地仓库:
- 项目右键,依次选择 Git → add,此时项目文件变成 绿色,此时文件只是处于暂存区,并没有真正进入到版本库中。
- 选中要提交的文件夹, 点击右键,依次点击 Git → Commit Directory
- 选择需要提交的文件,填写提交信息,填写作者信息,最后点击提交。
注意:一般情况下需填写提交信息,方便自己或别人查看,相当于备注。
- 点击 Commit 提交到本地仓库
4.3 Idea 关联远程仓库地址:
- 创建 Remotes,idea 里面依次点击 VCS → Git → Remotes
- 点击右边的小加号,点击OK
- 填写远程仓库地址(url 是第一步创建仓库的时候得那个仓库地址),点击 OK
- 点击 OK
4.4 将代码从本地仓库提交到远程仓库:
- Idea 里面,依次点击 VCS → Git → Push
- 确认信息,然后 Push
- 出现提示信息 Push Successful,证明提交成功。
- 去 Github 下面就能看到你提交的文件
将本地代码上传到Github中这部分内容引自:https://blog.csdn.net/weixin_43570367/article/details/103065956