文件状态
IDEA 能在工作区以不同颜色来区分文件所处状态
黑色(正常色):未修改状态 ;已提交状态
褐色:未跟踪状态
蓝色:已修改状态
绿色:已暂存状态 (没效果)
红色:存在冲突没merge的
文件更新
- Pull & Fetch
- VCS(右击工程文件) --> GIT --> (repository) --> pull
- 点击Pull
- 顺利Pull
- Version Control --> Console 输出成功
- Version Control --> Update Info 能看到更新的列表
- Version Control --> Console 输出成功
- Pull时存在冲突
- 文件已经处于commited状态 ,本地仓库与远程仓库冲突;
- 此时进行 File Merged with Conflicts 处理
- 合并完成之后,本地如果有修改会变成 待暂存状态,可以add ,commit再提交
- 此时进行 File Merged with Conflicts 处理
- 文件是已修改或已暂存状态 ,本地仓库与远程仓库冲突;
- 此时会提示 pull failed 需要手动处理
- 点击View them --> Local Changes Prevent from Pull 进行合并处理
- 此时会提示 pull failed 需要手动处理
- 文件已经处于commited状态 ,本地仓库与远程仓库冲突;
文件提交
修改文件之后;右击文件/目录 (或者VCS)–> Git --> add / Commit File
- 选择 add 将文件添加入暂存区,进行后续操作
- 选择Commit File IDEA 会帮助合并 add 和commit操作一步式进行 (对SVN用户更友善)
提交Commit
- 选择需要commit 文件
- 填写commit message (必填)
- 可进行文件比较(本地仓库与当前工作区比较)
- 选择提交
- Commit :文件提交成 commited 状态
- Push:进行提交
- Commit and Push : IDEA提供一步式的合并提交操作
推送(Push)
- 会列出push的文件
- Push会把commit到本地库的内容都提交,不存在选择性Push,除非将commit文件撤销
- Force Push :禁用,强制push,不管远程仓库是否有冲突,会被本次push覆盖。
- Push 冲突失败 (Push Rejected)
- 点击 Merge,进行Merge
- Merge 完之后,本次Push会因为被拒绝而取消;需要重新选择Push
- Push完成
- IDEA 弹出框 看到push成功
- Version Controls --> Console 看到push成功信息
- GitLab上看到push的信息
- IDEA 弹出框 看到push成功
撤销文件
- 撤销分为 reset 和 revert ;原则上优先使用reset
- 撤销能撤销 已修改、已暂存、已提交。 撤销不了已Push状态;
- 操作:选中文件或VCS菜单 --> Git --> (Repository ) --> Reset HEAD…
- 选择具体的 Type 可以在To Commit 输入具体参数。点击Reset
- 各状态下的撤销,都是这个操作界面,不同的是具体选项
- 撤销完成
文件比较
- 选中文件 --> Git --> Compare with the Same Repository Version
- 当前文件与服务器上该文件同版本的内容进行比较。
- 当前文件与服务器上该文件同版本的内容进行比较。
- 选中文件 --> Git --> Compare with
- 可以供选择具体版本提交的文件做比较
- 可以供选择具体版本提交的文件做比较
- 比较界面
查看log
- 可以在GitLab 看到所有提交记录。
- IDEA也很方便:选中文件 --> Git --> Show History
- 获取的历史列表,也是从GitLab上抓取下来的。并非本地的日志记录。
- 获取的历史列表,也是从GitLab上抓取下来的。并非本地的日志记录。
- 列表展示选中文件在当前分支提交的各个版本
- 列表中的注释 是commit时 指定的message;Push是没有再记录操作的
- 所以显示的时间是Commit到本地仓库的时间。同样的GitLab上展示的时间也是Commit操作时间
双击可以展示本次提交的修改的地方