MyEclipse中上传项目到git&&MyEclipse中git操作

来源:互联网 发布:2016最新网络歌曲dj版 编辑:程序博客网 时间:2024/03/29 12:51

GitHub VS GitLib

两者都是基于Web的Git repositories仓库,拥有流水线型的web开发流程,很大程度上GitLab是仿照GitHub做出来的。它们为开发团队存储,分享,发布,测试和合作Web项目提供了中心化,云存储的场所。

GitHub:作为开源的代码库以及版本控制系统,拥有900万的开发用户。是目前最火的开源项目托管系统。同时提供公共仓库和私有仓库。但是如果使用私有仓库是需要付费的。

GitLab拥有更多的特性:
(1)便捷的用户界面,在同一界面上获取到:projects,用户,最近的用户,群组和状态;
(2)允许设置查看权限是公有还是私有;
(3)允许用户选择分析一个project的一部分代码;
(4)允许用户设置project的获取权限
(5)可以获取到团队的整体的改进进度

GitLab的配置与使用

1.创建新项目

导航条的"+"进入创建页面:

创建工程页面:

Project path:项目路径,一般认为是项目名称  Import prject from:从哪导入项目,提供Github/Bitbucket等几个选项  Description(项目的描述):可选项,对项目的简单描述  Visibility Level(项目可见级别):提供Private(私有的,只有你自己或者组内的成员能访问)/Internal(所有登录的用户)/Public(公开的,所有人都可以访问)三种选项。  

2.添加和配置SSh公钥

SSH(Secure Shell)是一种安全协议,在你的电脑与GitLab服务器进行通信时,我们使用SSH密钥(SSH Keys)认证的方式来保证通信安全。 
创建SSh密钥,将密钥的公钥添加到GitLab,以便通过SSH协议访问git仓库。
SSH 密钥的创建需要在终端(命令行)环境下进行,我们首先进入命令行环境。通常在OS X和Linux平台下我们使用终端工具(Terminal),在Windows平台中,可以使用Git Bash工具,git客户端安装目录下git-bash.exe文件

A:进入SSH目录:cd ~/.ssh

(1)如果还没有 ~/.ssh 目录,可以手工创建一个(mkdir ~/.ssh),之后再通过cd ~/.ssh进入SSH目录

(2)可以通过ls -l命令查看SSH目录下的文件,来确认你是否已经生成过SSH密钥;如果SSH目录为空,我们开始第二步B,生成 SSH 密钥;如果存在id_rsa.pub这个文件,说明你之前生成过SSH密钥,如何添加多个sshkey也不难,一般很少用,这里不介绍了。

B:生成SSH密钥

我们通过下面的命令生成密钥,请将命令中的YOUR_EMAIL@YOUREMAIL.COM替换为你注册gitlab时用的Email地址。

ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM"

在SSH生成过程中会出现以下信息,按屏幕的提示操作即可:

Note:Enter passphrase (empty for no passphrase) :时,可以直接按两次回车键输入一个空的 passphrase;也可以选择输入一个 passphrase 口令,如果此时你输入了一个passphrase,请牢记,之后每次提交时都需要输入这个口令来确认。

实践过程中Android studio 如果有密码无法同步,建议不要密码。

公钥默认地址:C:\Users\用户.ssh

连接git服务器生成可信任文件known_hosts,否则会报:Push failed: Failed with error: fatal: Could not read from remote repository.

Per android Studio help under SSH Executable:

Built-in: select this option to use the implementation provided by IntelliJ IDEA. Native: select this option to use native implementation.
修改SSH Executable 为 Native

3.获取SSH公钥信息

SSH密钥生成结束后,根据提示信息找到SSH目录,会看到私钥idrsa和公钥idrsa.pub这两个文件,不要把私钥文件id_rsa的信息透露给任何人。我们可以通过cat命令或文本编辑器来查看idrsa.pub公钥信息。
(1)通过编辑器。使用你熟悉的文本编辑器,比如 记事本、Sublime Text等软件打开id
rsa.pub,复制里面的所有内容以备下一步使用。

(2)通过cat命令。在命令行中敲入cat idrsa.pub,回车执行后命令行界面中会显示idrsa.pub文件里的内容,复制后在下一步使用。

(3)通过直接使用命令将id_rsa.pub文件里的内容复制到剪切板中

Windows: clip < ~/.ssh/id_rsa.pub

Mac: pbcopy < ~/.ssh/id_rsa.pub

GNU/linux (requires xclip): xclip -sel clip < ~/.ssh/id_rsa.pub

4.添加SSH公钥到gitlab:

打开gitlab的Profile配置页面,选择SSH Keys,如图:

添加SSH公钥。填写Title和Key,其中Title是Key的描述信息,Key是上面复制的SSH公钥的内容,直接粘贴到输入框中保存即可

MyEclipse中的项目上传到gitLab中

1)项目名称-Team-Share Project... 
在Configure Git Repository窗口,点击“User or create repository in parent folder of project”,然后点击“Create Repository”,新建一个本地仓库:
注意:这里一定要选择"create the Repository in the parent folder of the project……",否则,git会把整个MyUtils目录放在gitLab的MyUtils目录下,就是一个MyUtils目录又嵌套另一个MyUtils目录
此时,项目中可以看到很多问号,表示有文件需要提交: 
2)项目右键-Team-Commit
Commit message输入提交的理由;点击Select All;然后点击Commit and Push 

这时候会弹出一个Destination Git Repository窗口:

URI填写在1.2步中获得的https格式的项目地址;
Authentication填写github的账号和密码;
勾选“Store in Secure Store”以免每次都要输入密码。
Next > 
3)在Push Ref Specifications窗口中,点击“Add All Branches Spec”,其他不用填,然后点击Next >

4)自动选择了master,点击Finish
 上传成功,点击OK
5)在gitLab上验证是否上传成功

MyEclipse中如何使用git

新建文件添加到git版本监控

Team- Add to Index,可以观察到图表有了变化

将文件从索引控制中排除

Team-Remove from Index

代码提交到远程仓库

Team-Commit-Commit and Push (该操作会自动将文件加入索引控制)

查看历史记录

Team-Show in History

选择对比模式(Compare Mode) 

新建分支

(1)在远程gitLab上创建分支 commits-NEW BRANCH 
新分支的hotfix,是用来线上bug修复的,所以create from 是 master
(2)在MyEclipse上创建分支
Team-Swtich To-New Branch 

创建完新分支,会自动切换到分支上

拉取远程gitLab代码

Team-Pull 我使用MyEclipse拉取代码的时候报错:

出现这个问题大概是因为你要设置本地和远程的分支的对应值,找到自己的的本地git路径-项目-.git-config。文件原内容:

[core]repositoryformatversion = 0filemode = falselogallrefupdates = true

添加如下内容:

[branch "master"]     remote = origin     merge = refs/heads/master[branch "hotfix"]     remote = origin     merge = refs/heads/hotfix[branch "develop"]     remote = origin     merge = refs/heads/develop [remote "origin"]     url = http://10.127.138.129/wanglei_dev/servletLearn.git    fetch = +refs/heads/*:refs/remotes/origin/*

url:用于指定自己的的远程gitlab地址 branch:"XXX",远程分支有几个就对应有几个branch

处理冲突文件:

为了模拟冲突,我在我本地develop的开发分支下,又创建了一个develop1的开发分支
(1)我在develop1的开发分支下修改了某个文件test.java,然后只commit。
(2)切换到develop开发分支下修改了同一个文件test.java,同样我也只是先commit
(3)develop分支现在开发合并代码:Team-Merge,选择要合并那个分支 
(4)合并之后我们会看到:冲突
(5)解决查看冲突: (6)我们通过5的操作可以查看到谁都改了什么,进而开始进行冲突的解决,解决完冲突我们会看到我们文件是这样:

(7)我们需要加入的索引控制,上传即可

删除分支:

将svn迁移到git

(1)新建一个目录,用来保存项目
(2)$ git svn clone svn://用户名:密码@10.12.4.53/pt/AutoPlatform/DemandManagement --no-metadata
(3)进入clone的文件夹,带有.git目录的文件,查看svn的commit记录:git log
(4)本地初始化git查看完成:git remote add origin http://xxx.xxx.xxx.xx/sysdev/lecture.git
(5)推送到远程git仓库:git push -u origin master


原创粉丝点击