IDEA配置Git进行代码管理

随笔


Git介绍

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git组成部分:

SVN是集中式的,Git是分布式的。集中式就是所有的代码都存储在中央服务器,分布式就是每台电脑都是中央服务器。

使用Git分支开发流程

从一般开发者的角度来看,git有以下功能:
  1. 从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
  2. 在自己的机器上根据不同的开发目的,创建分支,修改代码。
  3. 在单机上自己创建的分支上提交代码。
  4. 在单机上合并分支。
  5. 把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
  6. 生成补丁(patch),把补丁发送给主开发者。
  7. 看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
  8. 一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:
  1. 查看邮件或者通过其它方式查看一般开发者的提交状态。
  2. 打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
  3. 向公共服务器提交结果,然后通知所有开发人员。
日常开发流程:

Git安装配置

本地下载安装

公司内可能会把Github封掉了,所以使用淘宝提供的镜像下载
下载地址:http://npm.taobao.org/mirrors/git-for-windows/
安装方法参考:https://www.cnblogs.com/wj-1314/p/7993819.html

远程仓库配置ssh密钥:
  1. 打开本地Git Bash

设置Git的user name和email:(如果是第一次的话)

$ git config --global user.name "1805xxxx"
$ git config --global user.email [[email protected]](mailto:[email protected])
  1. 创建 SSH Key
$ ssh-keygen -t rsa -C [[email protected]](mailto:[email protected])

连续3次回车,在C:\Users\1805xxxx.ssh 目录下最后得到了两个文件:id_rsa和id_rsa.pub,其中id_rsa.pub就是需要配置到远程仓库的公钥,打开复制ssh-rsa这段代码,再进入远程Git仓库进行配置。

  1. 远程Git仓库配置

创建远程Git仓库

公司GitLab地址:http://opensource.cnxxxx.com/ (公司内网)
首先新建一个Git仓库:填写项目名称和项目描述,可见等级根据自己需求定义。

新建项目
项目管理

本地IDEA使用Git

先测试本地环境Git是否安装成功,在设置里找到Git—Test

工作开始前都先把代码从github库上拉取下来,更新自己的代码,避免别人修改过的代码与自己的有冲突,必须要养成这样一个良好的习惯。

clone

拿到git路径,打开IDEA,选择Checkout form Version Control,检出仓库到本地:

在URL中输入git地址,点击Test进行测试连接,下边Director选择自己的工作空间,连接成功后,点击Clone按钮,即可将远程仓库克隆到本地。

.gitignore

按照规则忽略文件
安装.ignore插件,配置.gitignore文件

安装完以后可以看到与规则匹配的文件都变成灰色了,即使修改了也不会被提交。

add

在项目中新建文件的时候,IDEA会询问是否将该文件加入版本控制,如果选择了是,那么就相当于执行了add命令,文件名会变绿色,如果选择了否,那么文件名会变红色,未加入版本控制。
新建文件时,未加入版本控制:


选择Yes,加入版本控制,文件名会变绿色:

commit

进行文件的提交,提交文件后,可以在IDEA提供的版本控制里边查看当前分支开发情况:
localMaster为我自己本地建的分支。origin/master为远程主分支。

这个时候,只在自己本地仓库存在该文件,远程Git仓库并不存在。

fetch

比如这个时候有人在该package下提交了另外一个文件,并提交到了远程仓库,远程仓库多了RemoteGitTest.java文件,但是并不影响本地。如果要同步远程仓库的代码,需要使用fetch命令。

该命令会将远程仓库的代码同步下来,但是并不会合并。

可以看到最左侧为主分支,然后自己的本地分支突出来了。

pull

pull和fetch命令都是从远程仓库拉取代码,但是fetch相当于是从远程获取最新版本到本地,但不会自动merge。pull是会自动fetch,并且merge代码。
如果需要有选择的合并git fetch是更好的选择。效果相同时git pull将更为快捷。

merge

现在本地仓库和远程仓库有了不同,为了提交代码,必须先将代码进行合并,在IDEA右下角,是有当前分支的名称的,可以快速进行切换自己的本地分支。

切换到本地的主分支,然后点击远程分支,选择Merge into Current,将远程分支合并到本地。这样,该分支就是包含远程代码的最新代码。

合并后,如果有冲突需要解决冲突,最后在控制台可以看到如下:

继续修改本地文件,可以看到现在就在一个分支上了。

push

合并完代码后,现在代码都是存放在自己的本地电脑中的,其他人并看不到,所以需要推送到远程仓库,让所有人都看到。

点击push后会出现Push Commits的窗口,里边都是自己本地仓库的提交记录,右侧是修改过的文件,点击下边的Push,即可推送到远程仓库。

推送完成后,在IDEA右下角会显示推送成功的消息:

然后看本地控制台:标签都到了同一位置,说明本地与远程代码保持了一致。

branch

有时候会接到多个开发任务,但是这多个开发任务修改的是不同位置的代码,这个时候可以快速拉取多个分支,然后分别完成不同的开发任务。
选择某一个分支,点击checkout As... 意思是从远程分支拉取一个新的分支

我这里拉取了一个test分支

点击ok,右下角自动给你切换到test分支,并且本地分支栏也多了test分支

如果想切回其他分支,只需要选中其他分支,然后点击Checkout即可快速切换到另一个分支。两边修改的代码互不影响。

以上就是在IDEA中快速进行分支开发。

SourceTree进行Git管理

SourceTree只是通过UI的方式来方便进行版本管理,实际上和使用Git Bash写脚本命令一样就,增加了交互式界面,操作也更安全些。

1.下载sourcetree

https://dl.softmgr.qq.com/original/Development/SourceTreeSetup-3.2.6.exe

下载后安装默认安装,需要修改一些文件,才能跳过验证,破解安装,步骤如下:

  1. 初次启动sourcetree

会在个人目录生成 C:\Users\1805xxxx\AppData\Local\Atlassian,注意你的个人目录

如果看不到是因为AppData是隐藏文件夹

  1. 关闭sourcetree安装验证

C:\Users\1805xxxx\AppData\Local\Atlassian\SourceTree下创建名为accounts.json的文件

[{
  "$id": "1",
  "$type": "SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity",
  "Authenticate": true,
  "HostInstance": {
    "$id": "2",
    "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount",
    "Host": {
      "$id": "3",
      "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountHost, SourceTree.Host.AtlassianAccount",
      "Id": "atlassian account"
    },
    "BaseUrl": "https://id.atlassian.com/"
  },
  "Credentials": {
    "$id": "4",
    "$type": "SourceTree.Model.BasicAuthCredentials, SourceTree.Api.Account",
    "Username": "",
    "Email": null
  },
  "IsDefault": false
}]
  1. 修改user.config
    然后在进入C:\Users\1805xxxx\AppData\Local\Atlassian\SourceTree.exe_Url_dbhf2dawcrrrvxjjwvb2mxghqxuehspc\3.2.6.3544
    修改user.config内容,增加下面代码:
            
                True
            
            
                20160201
            

4.再次启动安装程序
默认安装,跳过了注册界面,由于我们将使用git客户端,因此选择我不想使用Mercurial即可。

配置SourceTree

配置token

之后就可以开始项目开发版本管理了,例如开始拉取一个项目,注意一般开始使用dev分支,确认没问题的代码才会合并到master上

clone

就可以把远程Git仓库下的项目克隆岛本地就行管理了,其他具体用法可以参考网上的教程。
以上就是Git的安装和使用的一些记录。

你可能感兴趣的:(IDEA配置Git进行代码管理)