sweets_wn的gravatar头像
sweets_wn 2018-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头像
最近浏览
scyscy  LV4 2021年7月23日
gx_8888  LV1 2020年8月26日
CZEMXV 2020年6月9日
暂无贡献等级
是你的锐哥哦  LV2 2020年3月19日
wyx123456  LV19 2020年3月9日
256818 2019年12月27日
暂无贡献等级
何新宇 2019年12月5日
暂无贡献等级
Onlyli  LV14 2019年11月26日
我本葬花人葬花亦葬人  LV16 2019年10月21日
759985221  LV8 2019年9月16日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友