您的位置:首页 > 运维架构 > Shell

GitBash+GitLab+Eclipse使用攻略非常详细版

2016-06-28 20:40 549 查看
Git简介及GitLab使用

一、Git Bash 安装

Git使用的版本为1.9.4,因为我的服务器上的gitlab是1.7的,客户端要不服务端的版本要高才可以。

下载地址:https://git-scm.com/download

双击Git-1.9.4-preview20140611.exe文件,进入安装界面,如下图:



2. 两步next后选择安装目录,如下图:



3.next进入Git安装模块选择



4. next进入Git Setup界面,“Adjusting your PATH environment”,选择默认值“Use Git Bash only”,如下图所示:



5. next进入Git Setup界面,“Configuring the line ending conversions”,选择换行格式,选择“Checkout as-is, commit Unix-style line endings”,如下图所示:



二、GitLab使用说明

2.1新建项目

新建项目前,先创建项目所在的组(也就是说这个项目文件是保存在哪个组里)

1. 选择Admin area,选择Groups——New Group



2.填写组名及相关信息(Groups一定要与Teams名称一致)



3. 选择Create New Projcet



输入项目名称,同时在namespace里选择刚才创建的组

2.2创建用户

1. 选择Admin area 选择Users——New User



2.其中Name为对方的中文名(或英文或拼音,能让其他人识别即可,例如:张三、zhangsan),Username使用邮箱的前缀(登录gitlab的用户名),Email为公司邮箱(这个按照公司规定来,不一定非得按照我这样方法)



3. 密码尽量选择复杂、带有特殊字符10个以上的,最好使用随机生成的密码,用户名和密码会发送到对方邮箱



4. 项目现在默认即可,并且把Can create group与Can create team给取消默认的勾选



5. 下面信息默认不输入



6. 信息输入完成后,选择Create user;

2.3重置用户密码

1. 选择Admin area,选择User下面的数字



2. 然后选择User下面的Edit,找到Password项就可以重置密码了;

2.4赋予用户项目权限

1.选择Admin area ,选择Teams



2. 输入组名与信息,点击“Create team”



3.先增加这个组可以对哪些项目有什么权限,选择Add projects



在左侧的Projcet name里可以选择你当前gitlab已经存在的项目

在右侧的Max access选择此组对这个项目最大能有什么权限,默认选择Developer

关于这些权限的介绍

Guest

• Create new issue

• Leave comments

• Write on project wall

Reporter

• Create new issue

• Leave comments

• Write on project wall

• Pull project code

• Download project

• Create a code snippets

Developer

• Create new issue

• Leave comments

• Write on project wall

• Pull project code

• Download project

• Create new merge request

• Create a code snippets

• Create new branches

• Push to non-protected branches

• Remove non-protected branches

• Add tags

• Write a wiki

Master

• Create new issue

• Leave comments

• Write on project wall

• Pull project code

• Download project

• Create new merge request

• Create a code snippets

• Create new branches

• Push to non-protected branches

• Remove non-protected branches

• Add tags

• Write a wiki

• Add new team members

• Push to protected branches

• Remove protected branches

• Push with force option

• Edit project

• Add Deploy Keys to project

• Configure Project Hooks

Owner

• Transfer project to another namespace

• Remove project

完成后选择Add

选择Addmembers



在左侧的User name里选择你当前gitlab里已有的用户

在右侧的 Default projectaccess 里,选择相应的权限,默认最好为 Developer

在最后的Team access下不勾选Admin,然后选择Add,这样就完成了用户与组权限的赋予,该Team中的用户(developer权限)才能对Team中的工程进行clone、pull、push操作

2.5取消用户项目权限

选择Admin area,选择Teams



在Name下选择哪个组,点击 组名称,进入如下界面:



在Members里选择User name的用户,点击那个用户



在右侧的Projcets里,若要改变对该项目的权限,可选择Edit



若要对该项目取消任何权限,则选择删除;

以上为管理员操作,以下为普通用户操作

2.6创建SSH 密钥

目的:git使用https协议,每次pull, push都要输入密码,相当的烦。使用git协议,然后使用ssh密钥。这样可以省去每次都输密码。Git 服务器使用 SSH 公钥来进行授权。

第一步、看看是否存在SSH密钥(keys)

需要看看是否看看本机是否存在SSH keys,打开Git Bash,并运行:

$cd ~/.ssh

检查你本机用户home目录下是否存在.ssh目录

如果,不存在此目录,则进行第二步操作,否则,你本机已经存在ssh公钥和私钥,可以略过第二步,直接进入第三步操作。

第二步、创建一对新的SSH密钥(keys)

输入如下命令:

$ssh-keygen -t rsa -C “your_email@example.com”

这将按照你提供的邮箱地址,创建一对密钥

Generating public/private rsa key pair.

Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter] 注:此处直接回车

直接回车,则将密钥按默认文件进行存储。此时也可以输入特定的文件名,比如/c/Users/you/.ssh/gitlab_rsa

接着,根据提示,你需要输入密码和确认密码。

注:如果输入了密码,则每次提交代码是都需要输入该密码,所以直接回车,不设置密码

相关提示如下:

Enter passphrase (empty for no passphrase): [Type a passphrase] 回车

Enter same passphrase again: [Type passphrase again] 回车

输入完成之后,屏幕会显示如下信息:

Your identification has been saved in /c/Users/you/.ssh/id_rsa.

Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.

The key fingerprint is:

01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com

注:这些密钥要保存好,密钥文件不要随意删除。

第三步、在web账户中添加公钥

登录web账号,点击My Profile–SSH Keys–Add new



将本机文件/C/Users/you/.ssh/id_rsa.pub使用文本编辑器打开,把文件内容copy出来,粘贴你的密钥到key输入框中



点击“Save”按钮;

第四步、测试

为了确认我们可以通过SSH连接web,我们输入下面命令。输入后,会要求我们提供验证密码,输入之前创建的密码就ok了。

$ssh -T git@mygit.com

你可能会看到告警信息,如下:

The authenticity of host ‘mygit.com (192.168.1.200)’ can’t be established.

RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.

Are you sure you want to continue connecting (yes/no)?

不用担心,直接输入yes。

如果看到下面信息,就说明一切完美!

Hi username! You’ve successfully authenticated, but mygit.com does not provide shell access.

2.7另外一种管理项目的方式

第一步:创建工程,选择namespace



Namespace这个选择是用来决定这个工程所属的,可以选User为你自己,或者选择组,这个会影响到后面工程的url。:

a. Global:则表示该工程所在目录是/home/git/repositories/工程名.gitURI:git@mygit.com:{工程名}.git

b. Groups:则表示该工程所在目录是/home/git/repositories/组名/{工程名}.git

URI: git@mygit.com:组名/{工程名}.git

c. Users:则表示该工程所在目录是/home/git/repositories/username/{工程名}.git

URI:git@mygit.com:username/{工程名}.git

工程创建好了之后需要设置Team Member,即对该工程有权限的用户

第二步:在该工程的home页的右边有“Team Member”按钮,如下图:





第三步:点击“New Team Member”按钮,进入设置页面,如下图:



第四步:用户选择成功后,会返回前一页,显示该项目中的团队成员列表,同时在此界面还可以直接修改用户的权限,如下图:



或者是Admin area – Projects –找到该工程,进入,会看到“Edit Team”的按钮



接下来的操作同上第三步

注:若A用户创建了工程P,而没有将B用户放入工程P的Team中,B用户是看不到工程P的;若B用户想要对工程P执行clone、pull、push操作,必须设置B用户为Developer权限;

三、Eclispe使用说明

3.1 Eclipse Git相关配置

在使用git之前你需要配置一下用户名和邮箱,这项配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录

Window->Preferences->Team->Git->Configuration



点击“Add Entry”,添加user.name



点击“OK”,再次点击“Add Entry”,添加user.email



为了识别方便,一般此处的user.name填写姓名;user.email为公司邮箱;

这样name和email就设置好了



3.2 本地添加Git工程

右键Import,选择Git—Projects from Git



点击Next,选择Clone URI;



点击Next,将gitlab中该项目的ssh地址复制到URI中,



点击Next



点击Next



点击Next



点击Next



点击Finish,就将服务器上的工程clone到本地了。

3.3 Git commit

点击项目右键team->commit(项目添加到本地仓库)

进入如下界面



提交指南:

a. 请将每次提交限定于完成一次逻辑功能。并且可能的话,适当地分解为多次小更新,以便每次小型提交都更易于理解。请不要在周末穷追猛打一次性解决五个问题,而最后拖到周一再提交。

b. 需要谨记的是提交说明的撰写。写得好可以让大家协作起来更轻松。一般来说,提交说明最好限制在一行以内,50 个字符以下,简明扼要地描述更新内容,空开一行后,再展开详细注解。Git 项目本身需要开发者撰写详尽注解,包括本次修订的因由,以及前后不同实现之间的比较,我们也该借鉴这种做法。

c. .gitignore文件(可以手动在项目下创建该文件),把要忽略的文件名填进去,Git就会自动忽略这些文件;

忽略文件的原则是:

1.忽略操作系统自动生成的文件,比如缩略图等;

2.忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;

3.忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

注:.gitignore文件只对还没有加入版本管理的文件起作用,如果之前已经用git把这些文件纳入了版本库,就不起作用了

解决方法:需要在git库中删除该文件,并更新。

3.4 Git push

项目右键team->remote->push(将项目提交到远程仓库)



点击Next



注:如果勾选force update,则表示覆盖提交,请勿勾选

点击Next



如果在提交时有红色冲突提示,如下图:



此时必须先更新,解决掉冲突后再提交

如果没有冲突,点击Finish



3.5 Git pull

如果项目要提交到远程仓库,应先从远程仓库拉取更新:team->pull,如果没有冲突,进行push;若有冲突,要先解决冲突后再进行提交;

解决冲突:



冲突的地方一般使用“<<<<”,“======”,“>>>>>”标记出不同分支的内容,这种情况需要熟悉这段代码,最好是原作者坐在一起共同修改,将修改好的文件,右键点击此冲突文件,选择Team -> Add to index再次将文件加入索引控制,此时文件已经不是冲突状态,并且可以进行commit并push到服务器端

3.6 创建分支

项目名称右键team->Switch to -> new Branch



分支的命名规则使用小驼峰式命名法,不要使用特殊字符,不要使用点。

3.7 Git merge

项目名称右键team->merge



由于master和dev分支都对同一个文件进行了修改,所以点击“Merge”按钮时,会弹出以下提示框:



选择将合并结果输入的文件;任何包含未解决冲突的文件都会以未合并(unmerged)的状态列出。Git 会在有冲突的文件里加入标准的冲突解决标记,可以通过它们来手工定位并解决这些冲突。

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

master分支是主分支,因此要时刻与远程同步;

dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;

如果为修改一个bug,可以创建本地分支,就没必要推到远程了,修复后,合并分支,然后将临时分支删除即可。

注:Eclipse中新建的工程名称必须与GitLab中的工程名相同,才能成功push到远程服务器上

四、git 命令说明

请参考:http://gitref.org/zh/

五、代码统计

统计某段时间内添加或修改的代码行数(将项目代码更新到本地,使用git bash进入项目目录下,执行以下命令)

git log –since=1.weeks.ago –until=today –stat | perl -ne ‘END{print c}c+=1if/(\d+)insertions/;′统计某段时间内删除的代码行数gitlog–since=1.weeks.ago–until=today–stat|perl−ne‘ENDprint$cc+=$1 if/(\d+) deletion/;’
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  eclipse git gitlab