IDEA 使用 Git 操作详解
Git 分布式版本控制概述 windows 安装 Git Linux 安装 GIt Git 命令 clone、add、status、commit、push、init 使用介绍 |
IDEA 配置 Git
1、Windows 上 Git 安装完成后就可以在 git 自带的命令行工具中执行 git 命令,IDEA 想要使用 git ,则需要进行简单的配置,类似与 maven 配置一样,指定 git.exe 程序路径即可。
2、配置 git :File–>Setting–>Version Control–>Git 面板的 Path to Git executable 中选中 git.exe 的位置即完成了 git 的配置。点击右侧的 "Test" 按钮可以检测配置是否成功。
3、所谓的配置:其实就是本机安装完成 git 后,在 IDEA 中检查一下是否连接成功,因为 IDEA 也是通过给本地的 git 客户端发送命令。IDEA 工具在安装的时候就默认安装了 Git 插件。
Git clone 克隆项目
1、开发之前需要下载 git 服务器(如 github、gitee)上的项目到本地,有如下方式:
1)File -> New -> Project from Version Control... 2)VCS -> Git -> Clone... 3)VCS -> Get From Version Control... |
2、这里以本人的 gitee 上的项目进行演示:wmx-redis: redis 练习
3、View -> Tool Windows -> Git 或者 Alt +9 ,可以打开 git 面板。
克隆下来的项目被识别为了svn
现象:
解决办法:
Git init 初始化本地项目并推送
1、项目开发时一般是本地先新建项目,搭好环境,运行没问题后,再上传到 git 服务器上,以供团队人员下载开发。上传项目的方式也并不唯一,比如:
| 1) git 命令行操作:" git init 初始化本地仓库并推送到远程服务器" |
| 2)也可以在 git 服务器新建仓库,克隆到本地,然后本地整个项目复制粘贴进去,接着提交给服务器,然后 IDEA 再从新下载代码。 |
| 3)直接通过 IDEA 新建项目,然后推送到 git 服务器上。 |
2、本节演示:先在本地 IDEA 中新建 helloWorld 项目,然后在 gitee 上也新建同名项目,最后将 IDEA 中的项目推送到服务器,步骤如下。
1)本地新建项目,提前准备好 .gitignore 文件,忽略指定的文件,也可以提前准备好README.md 文件。 2)git 服务器上新建同名项目:注意无论是 github 还是 gitee 此时都不要先初始化仓库、不要设置模板,不要新建 README.md 文件,在本地新建、或推送成功之后再新建。 3)VCS —> [Import into Version Control —>] Create Git Repository —> 选中第一步新建的项目:相当于 git init 初始化。 4)右键项目 —> Git —> Add ,或者 VCS -> Git - Add:将项目添加到暂存区,由 git 跟踪文件 4)右键项目 —> Git —> Commit Directory,也点击工具栏的提交按钮:提交项目 5)右键项目 —> Git —> Repository —> Push,或者 VCS -> Push:推送项目到服务器,点击 'Define remote' 定义服务器端的 url 地址,最后推送即可。 6)如果是第一次,则会提示输入服务器的账号密码。 |
gif 演示动图:images/Git 初始化本地项目并推送到服务器.gif · 汪少棠/material - Gitee.com
Git add 添加文件到暂存区
1、新建文件时,默认会提示是否将其添加到暂存区交友 git 版本管理,选择确定即可,也可以后期通过在文件上右键,然后 git -> add 进行添加。
Git commit 提交文件
1、对 git add 添加到暂存区的文件,可以进行 commit 提交,可以在某个文件上右键,然后 git -> commit 进行提交,也可以直接点击工具栏的提交(commit)按钮。
2、在提交面板中可以双击文件,对比当前本地版本与服务器版本的区别,也可以选择回退,即放弃改动的内容。
3、提交时需要填写日志/描述信息。
Git push 推送文件到服务器
1、VCS -> Git -> Push 将本地代码提交到远程仓库。
Git pull 拉取服务器文件
1、团队协作时,养成良好的习惯:下班提交代码,上班更新代码。更新服务器上的新内容时,使用:VCS -> Git -> Pull。
Git fetch 抓取服务器文件
1、fetch 抓取服务器文件到本地仓库后,需要自己手动合并,而 pull 拉取则会自动合并本地文件。两种方式各有所长,如果确定本地和远程文件不会有冲突,则 pull 更快,否则 fetch 更稳当。
Git merge 解决文件冲突
1、团队开发时,文件冲突在所难免,推荐每次 push 前,都先执行 fetch(推荐)或者 pull.
2、如果版本冲突,pull 会直接提示错误信息,而 fetch 抓取到本地后,可以在合并前看到具体冲突的地方和内容,合并时提示冲突点,然后一个一个进行处理。
3、无论和远程冲突的本地文件是否以及 commit,有冲突的合并的都会进入如下操作:images/IDEA git 解决冲突.gif · 汪少棠/material - Gitee.com
4、合并完成后就可以 push 推送到远程服务器了.
文件版本内容对比
Comare with 对比本地与历史版本
1、在目标文件上右键 -> Git -> Compare with...,然后选择需要对比的历史提交记录即可。
Show History 查看提交历史并对比
1、以下方式可查看文件提交历史,然后在提交历史面板可以对比版本之间的差异(Show Diff),或者对比某个历史版本与当前本地代码的差异(Compare with Local)。
方式1)选中需要查看的文件或者目录,然后右键:Git -> Show History 方式2)选中文件或者目录,然后直接点击工具栏的 show history 按钮 |
Show Diff 查看历史版本之间差异
1、对于变动之后未提交的文件,可以在提交面板双击文件,或者右键 show diff 查看当前与上一版本的差异,此时还可以 rollback 回退。
2、对于已经提交(commit)后的文件,则可以在提交历史面板(Show History),选中某个版本的文件,右键 -> show diff ,对比/比较与上一版本的差异。
分支(Branches)操作
1、操作方式与 TortoiseGit 工具 分支创建、合并、推送 基本一样,都是对原始命令的封装。
| 创建分支 | VCS -> Git -> Branches... -> +New Branches,然后输入分支名称(比如 dev)确定即可。 其中的 Checkout branch 复选框表示是否切换到新分支。 |
| 查看当前所处分支 | VCS -> Git -> Branches...,Local Branches 下面可以查看。 |
| 切换分支 | VCS -> Git -> Branches... -> Local Branches ,选择目标分支点击 checkout 即可切换。 |
| 合并分支 | a 分支合并到 b 分支时,先切到 b 分支,然后 VCS -> Git -> Merge changes...,Branches to merge 中选择需要被合并的分支即可。 |
签出(checkout )远程分支到本地
1、当其他人在远程创建了新的分支,需要我们开发时,第一步是签出远程分支到本地,然后就可以推送、更新了。
记住 git 账户和密码
1、idea 中设置记住 git 用户名和密码:在项目根目录下使用 cmd 或者在 IDEA 的命令行面板执行以下 git 命令:git config --global credential.helper store
2、执行上述命令后,在 idea 中第一次 pull 或 push 需要输入用户名和密码,之后就不用再输入了。
IDEA 命令行使用 Git
1、在 IDEA 中通过界面对 git 的操作其实到底也还是命令行操作,只是命令行转为由 IDEA 代劳了,所以也可以直接在 IDEA 的命令行面板中进行操作,可以使用 git 的命令。
2、进入 IDEA 命令行面板:View -> Tool Windows -> Terminal,或者快捷键 Alt + F12.
代码下载失败 & 强制输入账户密码登录
1、现象:有一次本地拉取 GitLab 代码的时候,报错如下,提示登录失败。
2、原因:应该是本地之前一直操作的是 svn、gitee、github 等网址,而 GitLab 还是第一次拉取,拉取的时候,IDEA 默认没有提示输入账户密码,应该是从本地直接取另一个其它网站的凭据,导致登录失败。电脑系统会把所有 Git 平台(Gitee/GitLab/GitHub)的 HTTP/HTTPS 凭证,统一存在一个「全局密码库」里,Git(IDEA 底层调用本地 Git 执行操作)发起任何 Git 平台的请求时,都会先自动去这个密码库找凭证,而不是主动弹框让你输入。电脑把 Gitee 和 GitLab 当成了 “同类型的 Git 平台”,直接拿 Gitee 的密码去登 GitLab,登不上就直接报错,连让你输正确密码的机会都没给。
Logon failed, use ctrl+c to cancel basic credential prompt. Authentication request was cancelled. Authentication failed for 'http://git.xxx.com:8888/gfmis/bgtex/xxx/account-server.git/'解决办法
1、Win+R 输入control keymgr.dll打开凭据管理器,只删标有 git.xxx.com 的条目(也就是刚才拉取失败的凭据,没有时不用管)。
2、打开 IDEA 「Terminal」内置终端,执行克隆命令,回车后,终端会立刻弹出 GitLab 的用户名 + 密码输入提示(纯命令行的输入框,不会复用 Gitee 凭证),输入正确后,代码会正常拉取,且这次的 GitLab 凭证会被系统单独缓存(后续 IDEA 操作 GitLab 就不用再输了,和 Gitee 缓存互不干扰)。
