Linux就该这么学
sweets_wn的gravatar头像
sweets_wn2018-08-13 16:28:03
Intellij IDEA系列(四)__GIT的初步使用

GIT是目前广为所知的分布式版本控制系统。本人用过VSS/CSV/SVN,现在用得多的一般是SVN,GIT相较而言,众多优缺点中,个人认为最大的特点还是开源(私有项目要收取费用),单位项目都有保密要求,但git作为学习平台还是很不错的。(GIT中文网站为码云https://gitee.com)

说明

git  --> 本地仓库 (add/commit/revert...)

github  --> 远程仓库(pull/push/clone...)

Intellij IDEA系列(四)__GIT的初步使用

环境

Windows7 64位

Intellij IDEA 2018.1.5

Git 2.18.0

GIT官网(https://github.com)注册用户

一、安装git

1. 官网下载git客户端安装文件

地址:https://git-scm.com/downloads

本文安装的版本为:Git-2.18.0-64-bit.exe

2. 安装git

双击下载的exe文件进行安装,本文除了修改安装路径外(E:\Program Files\Git),其余均为默认设置,安装结束后菜单栏增加如下git项:

 Intellij IDEA系列(四)__GIT的初步使用

二、Intellij IDEA配置git

1. 进入配置页面

File --> Other Setting --> Default Settings...

2. 配置git

配置git.exe路径和公钥类型,如下图:

Intellij IDEA系列(四)__GIT的初步使用

配置好后点击“test”按钮进行测试,弹出git版本信息即配置成功

Intellij IDEA系列(四)__GIT的初步使用

3. 配置github

Auth Type选择Password,Host不需要修改,Login和Password是在github网站申请的账号和密码,如下图:

Intellij IDEA系列(四)__GIT的初步使用

配置好后点击“test”按钮进行测试,如下图即为成功

Intellij IDEA系列(四)__GIT的初步使用

4. git生成ssh秘钥

开始-->所有程序,打开Git Bash,如下图

Intellij IDEA系列(四)__GIT的初步使用

在打开的命令窗口中输入:ssh-keygen -t rsa -C "sweetswn",再接着按3次Enter(需要enter的地方不输入任何信息,直接按Enter键),如下图即可看到已成功生成public key。

(注意:命令中的sweetswn为github网站账号,具体值因人而异。Git Bash窗口暂不关闭,用于验证shh秘钥是否成功添加到github。)

Intellij IDEA系列(四)__GIT的初步使用

秘钥文件目录如下图:

Intellij IDEA系列(四)__GIT的初步使用

5. github添加ssh秘钥

账号密码登录github(网址:https://github.com)

如下图增加SSH Key:

Intellij IDEA系列(四)__GIT的初步使用

Intellij IDEA系列(四)__GIT的初步使用

Intellij IDEA系列(四)__GIT的初步使用

验证ssh key是否已成功添加到github。

回到Git Bash窗口,输入命令:ssh git@github.com,输出信息如下图即为成功。

Intellij IDEA系列(四)__GIT的初步使用

三、Intellij IDEA使用git

1. 创建github远程仓库

账号密码登录github(网址:https://github.com)

Intellij IDEA系列(四)__GIT的初步使用

Intellij IDEA系列(四)__GIT的初步使用

Intellij IDEA系列(四)__GIT的初步使用

如上图,输入对应信息后,点击“Create repository”按钮即可创建一个远程仓库地址。

(注意,项目选择public,private需要收费)

2. 创建本地git仓库

A. 鼠标选中一个项目,菜单栏VCS --> Import Into Version Control --> Create Git Repository...

Intellij IDEA系列(四)__GIT的初步使用

B. 创建好后可以在 File --> Settings 中查看版本控制信息

Intellij IDEA系列(四)__GIT的初步使用

3. 项目代码提交到git仓库

A. 右击项目(整个项目提交)或者单个文件夹或文件,Git,Add

Intellij IDEA系列(四)__GIT的初步使用

B. Commit...

Intellij IDEA系列(四)__GIT的初步使用

Intellij IDEA系列(四)__GIT的初步使用

Intellij IDEA系列(四)__GIT的初步使用

4. 提交到github远程仓库

Intellij IDEA系列(四)__GIT的初步使用

Intellij IDEA系列(四)__GIT的初步使用

注意:上图中的URL应为http://github.com/sweetswn/test.git

URL中,sweeetswn为github账号,test为github上已经创建的仓库名称,如果没有该仓库,请参考前文【1. 创建github远程仓库

5. 从github远程仓库获取项目代码

Intellij IDEA系列(四)__GIT的初步使用

Intellij IDEA系列(四)__GIT的初步使用

6. 仓库分支(Branches)

比如临时修改bug、不确定是否上线的代码等等,可以建立新的分支。

A.创建本地新分支

Intellij IDEA系列(四)__GIT的初步使用

Intellij IDEA系列(四)__GIT的初步使用

创建完成后注意IDEA右下角,如下图,已经自动切换到了刚新建的temp分支

Intellij IDEA系列(四)__GIT的初步使用

点击分支后面的三角形,可以看到所有本地可用的分支,checkout即可进行分支切换

Intellij IDEA系列(四)__GIT的初步使用

(注意:此处创建的分支仅仅在本地仓库,如果想让别人获取到这个分支,则需要提交到远程仓库)

B.将新建的分支提交到github远程仓库

切换到新建的分支,Push

Intellij IDEA系列(四)__GIT的初步使用

Intellij IDEA系列(四)__GIT的初步使用

注意:上图中由于我是先push了后截的图,所以是不可操作的灰色。上图中的本地仓库和远程仓库都变成的新建的temp分支。

Push后,可以在github官网查看分支情况,如下图,temp分支已成功提交到github仓库

Intellij IDEA系列(四)__GIT的初步使用

C.获取github远程仓库分支

使用Pull,打开如下窗口,点击Remote后面的刷新按钮,会在Branches to merge栏中刷新出新的分支。这里并不想做合并,所以不要选中任何分支,直接点击Pull按钮完成操作。

Intellij IDEA系列(四)__GIT的初步使用

如果本地仓库没有该分支,则更新后,点击IDEA右下角,可以看到在Remote Branches区已经有了新的分支,点击后在弹出的子菜单中选择Checkout as new local branch,在本地仓库中创建该分支。完成后在Local Branches区也会出现该分支的选项,可以按上面的方法,点击后选择Checkout切换。

D.将分支合并到主干

新功能开发完成,体验很好,则可以把该功能合并到主干上。

切换到master分支,选择Merge Changes,如下图,勾选要合并的分支,点击Merge即可

Intellij IDEA系列(四)__GIT的初步使用

E.删除分支

在本地仓库(Local Branches)或者远程仓库(Remote Branches)中选择需要删除的分支,Delete即可。下图为删除github远程仓库中的分支示例。

Intellij IDEA系列(四)__GIT的初步使用

7. 版本回退

A.查看所有历史版本

Intellij IDEA系列(四)__GIT的初步使用

Intellij IDEA系列(四)__GIT的初步使用

B.复制版本号

如上图,想要退回到创建项目的版本,复制其版本号,注意同时把最新版本号也复制出来

Intellij IDEA系列(四)__GIT的初步使用

复制后粘贴到文本编辑器,新、旧两个版本号都有用

C.回退到旧版本

Intellij IDEA系列(四)__GIT的初步使用

Intellij IDEA系列(四)__GIT的初步使用

点击Reset按钮。可查看本地代码版本已回退,而github远程仓库的代码还未回退,但此时commit提示没有可提交的文件。

D.回退到新版本并提交远程仓库

如下图,再次进行回退,Reset Type选择Mixed,To Commit输入新版本号(步骤B)

Intellij IDEA系列(四)__GIT的初步使用

点击Reset按钮,IDEA的History中已经回到最新版本了,但再看代码却是旧版本的代码,文件颜色也变成了绿色,此时再Commit... --> commit and push。历史版本如下图:

Intellij IDEA系列(四)__GIT的初步使用

此时可以看到guihub网站的代码版本也回退至旧版本了。

8. 注意事项

A. 代码提交到github前,一定要先更新(fetch/pull)再提交(push),否则容易有冲突,git解决冲突比svn复杂。

Intellij IDEA系列(四)__GIT的初步使用

B. 文件颜色为红色,则为新增的文件,需要先Add再Commit;文件颜色为绿色,则为本地修改了的文件,直接Commit。

Intellij IDEA系列(四)__GIT的初步使用

C. 当更新(pull)失败时,说明服务器上的代码和本地代码有冲突,这时需要先将本地有冲突的代码备份,然后还原(revert),再pull,pull成功后,再把自己备份的代码部分拷入相应的代码中,再进行远程提交(push)就可以了。

D. 更新代码有两个命令: Fetch和Pull。Fetch是从远程仓库下载文件到本地的origin/master,可以手动对比修改决定是否合并到本地的master库。Push则是直接下载并合并。如果大家都严格执行先更新后修改再提交的规范,那么可以直接使用Pull。下图为代码对比

Intellij IDEA系列(四)__GIT的初步使用


打赏

已有3人打赏

自导自演的gravatar头像留不尽的相思泪的gravatar头像最代码官方的gravatar头像

分享到:

最近浏览
qinjinzhi123 LV19月20日
星星
Aurora_磊 LV59月18日
月亮星星
yanhp20179月17日
暂无贡献等级
decent LV69月15日
月亮星星星星
thr666 LV29月14日
星星星星
IT粑粑 LV19月14日
星星
予天空 LV29月13日
星星星星
anber955 LV19月13日
星星
Gbuygwhx LV29月10日
星星星星
luopengfei3000 LV29月10日
星星星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友