您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页git学习笔记

git学习笔记

来源:尚车旅游网
前言

git,类似于svn,是一种版本控制工具,同样分为服务器端(仓库中心)和客户端。github:主流的git仓库,仓库在github的服务器上,公开版免费,私有版收费。https://github.com/如果希望将中心仓库搭建到自己的服务器,可以使用gitlab或者gogs,其使用方式类似于github,安装方式下文介绍。

一、准备工作1、注册github账号https://github.com/需要验证邮箱2.创建仓库

1)下图中,两处New repository都可以新建仓库。

 2)输入仓库名称,其它配置不需要修改,点击Create repository。

3)仓库创建成功后复制仓库地址备用。

二、eclipse--git使用

1、目前Kepler(4.3)以后的版本都自带EGit插件,打开eclipse,Window->Preference->Team->Git->Configuration->User Settings,

点击Add Entry,创建两对key/value,key为user.name和user.email,value分别为github账号的name和email,这样提交代码后,就可以在github的仓库里看到操作人信息了。其实不是github的账号也可以,只不过提交后github页面中会提示该用户没有激活。Location属性不需要修改。2.发布项目到Github仓库

1)在eclipse中新建一个Java Project,右键点击项目-->Team-->Share project-->Git-->next,并勾选“Use or create repository in parent folder of project”

 

2)点击1处,再点击2处,之后点击Finish

  

 

3)此时项目效果如下,还并没有上传到github中

 

4)右击项目,Team->Add to Index ,此时看到问号变成了加号

 5)右击项目,Team->Commit,填写Commit message,点击Commit,此时也并没有将项目发

布到远程github仓库中,只是提交到本地仓库。如果希望提交到本地仓库并同时发布到github,可以点击Commit and Push。因为是第一次提交项目,所以此处可以点击Commit and Push。如果此时只点击Commit,则之后需要右击项目->Team->Remote->Push...。

 

 6)将github上创建的仓库地址粘贴到此处,其它信息会自动带出,但要注意用户名和密码,点击next--next--finish。

  

 

 

 7)此时会将项目发布到远程github中,发布成功点击OK。此时登录github查看仓库,会发现项目已经上传成功。

 

 

8)在eclipse中打开Git Repositories窗口,Window->Show View->Other->Git->Git Repositories,打开窗口时即可看到刚上传的项目已经在里面了

 9)Branches下的Local代表本地仓库,Remote Tracking代表远程仓库Tracking中没有内容,可以在仓库上右击->Pull,即可将远程仓库的索引仓库和远程仓库的版本号一致。

 

3.从Github仓库中取得项目

1)在eclipse中打开Git Repositories窗口,点击Clone a Git Repository, 2)将仓库地址粘贴到URI,填写用户名密码,注意这里仓库的URI是其户可以是我自己的github用户,因为这个仓库是public的,但是这样只能码,因为没有为此用户开放发布权限,下文介绍。

Remote 此时看到仓库,但却不能,此时看到抓取下来,本地如图所示。

他人创建的是用下载代码,提交代3)可以看到该仓库有两个branch,除了master的branch外,还有一个branch01branch下文介绍。

branch的。 

 4)修改Directory,这是项目保存在本地的位置

 5)此时查看Git Repositories窗口,发现远程仓库已经被加入进来,此时项目已经被存储到本地。

 

6)可以使用ImportI将项目加载到eclipse里,Import->Git->Projects from Git,Next

 

 

 

  

4.提交与更新项目

1)比如项目中创建了一个class,此时会在新增的class前显示个小问号

2)右击项目,Team->Add to Index,会将所有新文件打上索引,此时问号就都变成是已经加入过库的文件,则会是黑底的*图标),表示可以提交了,之后再次右击项>Commit,填写备注后点击Commit(提交到本地仓库),或者Commit and Push库)。

注意:一般如果只是自己负责的文件,可以选择直接点击Commit and Push按钮,号了(如->Team-布到远程如果是多

加果目(发仓但是个人都会维护的文件,就不建议这种方式了,因为有可能发生版本冲突,所以推荐先点击Commit,然后执行更新操作,解决冲突后再执行push,右击项目->Team->Remote-

>Push...。

 

 

或者,直接点击“Add All Branches Spec”,加入所有branch上的更新

Next--Finish--OK,以下是发布成功的提示界面

 

  如果发布时,提交的内容发生冲突,会提示如下界面,此时可以执行更新操作(见下文步骤3),对冲突代码处理后再提交

 

3)在提交代码前,先更新项目到最新版,右击项目->Team->Pull,此时如果有冲突,会显示如下界面,可以看到本地库和远程库版本不一致,点击OK,之后手工对冲突进行处理,冲突处理完成后可以重新发起提交,执行2)中的步骤。

 

冲突代码效果图示例:

 

4)上面的代码查看起来并不是很直观,所以处理冲突时,可以右击有冲突的文件(红色标识)->Team->Merge Tool,方便对比本地(左侧)和远程文件(右侧)的差异,可以直接修改左侧的文件。

5)冲突处理完成后,右击项目->Team-Add to Index的效果,黑底的*图标,之后再执行Commit操作将代码发布到github即可。

三、团队合作之多人协作

上面已经提到,如果多个人维护同一个仓库时,需要使用创建仓库用户的账号信息,否则只能下载,不能提交发布,一般可以通过创建一个公共账号解决。最好的方式还是通过创建组织的方式来实现。1.组织管理1)创建组织

 2)邀请用户

3)被邀请的用户会收到邀请邮件,点击下方按钮登录会要求登录github

登录github后再次点击join按钮才会完成加入组织

 2.创建组织内仓库

1)组织内创建仓库与单独创建一个仓库方法相同,不再赘述。

2)修改仓库权限

默认情况下,除了组织管理员,组织内的其他成员也可以创建仓库,但是对仓库只有read权限,可以修改这个默认值

点击上图中的Settings->Member privileges

 

 说明:上面的配置基本可以满足多人协作了,但是这样做会导致组织内的成员对组织内的所有仓库都有相同的权限,这样不便于多个团队,多个项目的管理,所以一半情况下并不会修改组织的默认权限,而是使用Team。 3.创建Team

1)Team可以被授予权限,可以将成员加入Team。

 

  

 

2)为Team添加成员

 3)为Team授予仓库的管理权限

 

 

说明:一个组织内可以有多个Team和多个仓库,但是组织内的Team和仓库只能属于一个组织。

 4)查看组织内成员的权限

 

可以看到是拥有team的write权限 

 

如果是组织中授予的write权限,效果如下

四、Branch管理

branch就是项目分支,默认情况下,仓库中只有一个branch,就是master。

我们可以把branch想象成一棵树,那么master就是树的主干,如果我们一直在master上发布代码,那么这颗树就会像一根棍子一样,如果我们为master创建了一个branch,那么这棵树就多了一个树枝。而此时的这个branch,就是master的一个clone。

我们可以继续在master上发布新的代码,也可以在这个新的branch上发布代码,branch可以被merge到master中,merge的过程就是合并代码的过程。

事实上,任何一个branch,包括master,都可以被创建新的branch。1)我们为什么要使用branch?

a.有多套环境,比如开发、测试、生产,等等,一套环境测试完成,然后merge到另一套环境进行测试;

b.项目已经发布,但还处于持续集成的阶段,这时如果只有一套master就比较不方便了,比如生产环境有个重要bug需要马上处理,但此时master上已经有新的代码被提交了;通常情况下,a,b两种情况时交织在一起的,所以使用branch还是有必要的。2)创建branch

打开Git Repositories窗口,在Local的master上右击->Create Branch

 

填写branch名称,默认勾选“checkout new branch”,表示将本地内容切换为新的branch

 此时看到新的barnch已经创建,并且原先在master上的对号现在已经在新的branch上了

 此时查看项目,发现项目的表示也切换为新的branch了

 

此时在提交代码,只会改变branch,而不会影响master了。3)发布本地branch到远程github

在Git Repositories窗口中,右击新创建的本地branch->Push Brcans..

  

branch发布成功后,可以在Git Repositories窗口的Remote Tracking中查看到

 此时就可以像使用master发布代码一样,想新的branch中发布代码了。4)合并branch到master

在Git Repositories窗口中,双击Local中的master,将本地代码切换到master,然后右击项目-

>Team->Pull,先执行更新操作,保证master上的代码是最新版本,之后右击项目->Team->Merge

 双击\"my-branch01\",或者鼠标选中它,然后点击下面的Merge按钮

 此时会将branch中的内容加入到当前项目中,此时右击项目->Team->Remote->Push,就是正常的发布流程,这样就可以将新的branch合并到远程的master中了。5)删除branch

本地不再使用的branch可以删除,但是删除时其不能处于使用状态,也就是不能有那个小对号。远程branch可以随时被删除,删除后可以从本地重新发布。

6)发布到github中的branch,其它人可以通过在Git Repositories窗口中,右击仓库->Pull,来刷新查看。

五、Gitlab基本介绍

官方地址:https://about.gitlab.com/  参考官方说明在centOS6.5下安装比较顺利,但是启动关闭比较复杂。

这里推荐使用 https://bitnami.com/stack/gitlab/installer 安装方式 ,它对gitlab的所有工具进行统一封装并提供管理界面。

下载的安装包为:bitnami-gitlab-8.9.6-1-linux-x64-installer.run

安装时执行 ./bitnami-gitlab-8.9.6-1-linux-x64-installer.run,即可打开安装界面,一路next即可。安装完成后,启动关闭重启:

/opt/gitlab­8.9.6­1/ctlscript.sh start/stop/restart

查看GUI管理控制台:

/opt/gitlab­8.9.6­1/manager­linux­x64.run

访问界面:http://127.0.0.1 

使用方式类似于github,多人协作时,要注意group用户和project用户是要分别授权的,如果希望其它project能够直接发布master,要授予其Master权限。进入项目页面后点击右上角的设置图标,选择Members,可以向group或者project中添加用户。

六、Gogs基本介绍

官方地址:https://gogs.io/docs/installation我在两个环境下进行了测试:

系统环境01:macOS Sierra 10.12,mysql-5.7.14-osx10.11-x86_64,git version 2.8.4 (Apple Git-73)

系统环境02:CentOS-6.5-x86_64,mysql-5.7.14-osx10.11-x86_64,git version 1.7.1 Gogs使用二进制安装方法,v0.9.97 @ 2016-09-01。

Gogs是基于Go语言编写的,由中国团队负责维护,所以支持中文界面,官网有详细的使用文档。安装后访问地址:http://127.0.0.1:3000 会打开初始化界面,要事先创建好数据库,字符集为utf-8.

另外,会在启动gogs的用户的家目录下创建仓库目录gogs-repositories,所以建议先创建一个git用户,然后有git用户启动gogs,尽量不要使用root用户。初始化后需要自行注册用户使用。

七、Jenkins与Git

1.在Jenkins中需要安装Git plugin插件,安装插件不在赘述。

2.安装好git插件后,进入系统管理->系统设置,找到Git plugin配置项,填写user.name和user.email的值,这里就填一个已有的github账号。

3.系统中要先安装好git,以ubuntu为例,sudo apt-get install git-core,其它操作系统安装git的方法自行百度吧。

4.在jenkins中新建一个自由风格的项目,源码管理中选择Git,Repository URL中添加仓库地址,Credentials使用add创建一个用户名密码的认证信息,这里使用一个能read的账号就行。5.立即构建。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务