Git是优秀的版本控制管理系统,与传统的CVS/SVN等集中式版本管理系统不同,Git可以实现项目的分布式协作管理。
整理来源:Intelij IDEA软件开发与应用 作者:乔国辉
一、下载与安装:https://git-scm.com/download/win

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 (2)Git Bash Here提供了类Linux环境,开发者可以在指定目录或位置右击访问环境并进行Git相关的管理操作,如图所示

 

 接下来在IntelliJ IDEA中配置Git。打开IntelliJ IDEA开发工具,执行菜单File→Settings命令打开系统配置窗口并定位到Version Control→Git选项卡。

 

 

 

 (3)Git命令设置用户名与电子邮件用户既可以在Git Bash环境下执行此命令,也可以在CMD命令行窗口中执行此命令

git config --global user.name"username'

git config --global user.email "email"
(4)查看不同级别的配置

git config[--local|--global--system] --list
(5)Git提供了命令参数--get用来获取指定配置项
git config [--locall--system} --get section. key
(6)版本库、工作区、暂存区

工作区是所有项目文件的集合,其本质是项目工程的根目录。工作区内部包含了所有的文件,如资源文件、源码文件等。
版本库是对工作区中构成项目发布所需要的有效文件的抽取与标识。工作区中有一个隐藏的.git目录,这个目录就是Git的版本库。
Git版本库包含很多内容,其中最重要的就是暂存区。它存放在.git目录下的index文件中,所以暂存区也叫index或stage,它主要用于暂存被修改过的文件。
(7)版本库初始化

使用git init命令对目录进行初始化操作,此目录为项目的根目录,建议最好使用空目录且路径中不包含中文与空格
版本库创建后会生成一个默认分支(主分支),也叫master分支。项目中通常会基于主分支创建一系列子分支,这些子分支围绕主分支进行扩展并且在合适的时候将自身的特性合并到主分支中。
(8)文件管理
Git中的文件有已跟踪( tracked)和未跟踪( untracked)两种状态。对于任何一个文件来讲,它们首先出现在工作区,然后进入暂存区,最后提交到版本库成为待发布项目的一部分。
已跟踪文件是已经加入Git管理的文件,新文件在进入暂存区后即成为已跟踪状态。在文件经由暂存区进入版本库后,即使将其从暂存区清除也依然是已跟踪状态,除非将这个文件删除。
执行git commit命令将暂存区内容提交至版本库
(9)Git提交

在使用git commit命令进行提交时,Git会在版本库中生成一个40位的哈希值commit-id,commit-id属于某次提交的特殊标识。
commit-id相当于快照,它不仅标识了某次具体的提交,而且在进行版本回退时非常有用,用户可以在未来任意时间点通过git reset命令回退到这里。
git commit命令:

git commit -m[message]
(10)执行git log命令查看提交历史并按照提交时间由近到远排序
(11)如果要对所有已加入跟踪状态的文件进行提交,则可以使用如下命令:
git commit -a-m[message]
(12)如果用户已经进行了某次提交,同时又不想保留提交记录,则可以使用如下命令:
git commit --amend-m[message]
(13)Git文件对比

git diff命令用于在工作区、暂存区和版本库之间进行文件的差异化对比,其默认命令格式如下:
git diff

要查看暂存区与版本库之间的差异,可以使用如下命令:
git diff --cached[path]
可以使用git log命令得到某次具体提交的commit-id,然后执行如下命令进行比较:
git diff commit-id[path]

要对比两次提交之间的差异:
git diff [commit-id][commit-id]
要查看最近n次的提交历史,如最近2次,可以使用如下命令:
git log-n2[--oneline]
要查看指定分支的提交历史,可以使用如下命令:
git log [--oneline] branch
要查看指定用户的提交历史,可以使用如下命令:

git log--author= user[--oneline]
为了观察整个版本的演进历史,还可以使用图形化的查看方式,命令如下:
git log--graph
此命令在多人多分支开发中特别实用,通过观察分支的图形化结构可以

清楚地了解分支的处理过程。

(14)文件恢复
要恢复工作区中的文件内容,可以使用如下命令:
git checkout[--]<path>
此命令可以放弃所有未加入暂存区的修改,即把文件在工作区中的修改全部撤销。此操作的前提是文件必须为已追踪状态,因此被恢复文件至少进入过暂存区。
要恢复暂存区中的文件内容,可以使用如下命令:
git reset HEAD path
如果要放弃暂存区的内容,则可以使用如下命令:
git reset HEAD.
要对提交的版本信息进行回退操作,可以使用如下命令:
git reset[--soft|--mixed|--hard][HEAD][commit-id]
(15)删除文件
文件存在于工作区、暂存区和版本库中的某个位置。使用git rm命令可以执行文件的删除操作,命令如下:
git rm--cached readme.txt
此操作会将暂存区中的文件删除,同时这个文件将再次被归类为Untracked文件,但本地工作区中的文件将会被保留。如果用户需要将工作区中的文件也一起删除,则可以使用如下命令:
git rm readme.txt
执行此命令后暂存区与工作区中的文件都会被删除,但删除之前用户需要保证文件在工作区、暂存区与版本库的一致状态。
二、远程仓库
    GitHub与GitLab都是基于Git的代码仓库管理软件,其主要区别在于GitHub仓库项目基本上是开源的。用户可以在GitHub上创建私有的代码仓库,超过指定数量后将会收取一定的费用,适合于个人开发者和开源项目。GitLab可以在企业内部搭建私有的代码仓库,更加适合于企业级的多人协作开发。
    GitHub支持两种同步方式HTTPS和SSH。其中HTTPS十分简单,用户基本不需要配置就可以直接使用,但是每次提交代码和下载代码时需要输入用户名和密码进行验证。
如果要使用SSH方式进行同步,则用户需要在客户端生成密钥对,然后将其中的公钥放到GitHub服务器上。我们推荐使用基于密钥的验证方式。在生成密钥之前一定要配置user.name与user. email配置项,然后在GitBash环境下执行如下命令:
ssh-keygen-t rsa
三、IntelliJ IDEA下的Git操作
(1)上传本地项目到远程仓库
由于任何工程均可上传到远程仓库,创建过程不再过多描述。打开配置窗口并找到Version Control下的Git选项验证本地Git是否可以正常使用。
验证完成后切换到GitHub选项卡,打开Log In to GitHub窗口并输入用户名及密码,如图所示。

 

 如果用户没有GitHub账户,则可以单击Sign up for GitHub进行注册。输入用户名和密码后单击Log In按钮,IntelliJ IDEA会尝试登录GitHub,如图所示。

 

 


登录成功后会在远程列表中添加连接配置项
配置完成后打开工程,执行菜单VCS→Import into VersionControl→Share Project On GitHub命令打开上传工程窗口,指定远程仓库的名称(如果没有则新建).

单击Share按钮确认共享,弹出Add Files Forn Initial Commit初始化提交窗口,用户根据需要选择推送到远程仓库的文件。
单击Add按钮完成添加操作,IntelliJ IDEA会自动执行本地提交并推送到远程仓库,操作完成。
查看GitHub远程仓库会发现项目已经成功上传
(2)克隆远程仓库
执行菜单File→New→Get from Version Control命令打开克隆窗口,复制远程仓库的HTTPS地址并粘贴到URL区域,单击Clone按钮执行克隆操作,如图所示。

 

 

 

 (3)新建文件

在新建文件时IntelliJ IDEA会弹出Add File to Git确认窗口,如果选择Add操作则将文件添加到暂存区并以绿色标识,如果选择Cancel操作则当前文件只存放于工作区并以红色标识,如图所示。

 

 (4)提交文件

使用快捷键CTRL+K打开变更提交窗口,其中Unversioned Files分类下是新建且未添加到暂存区的文件,如图所示。

 

 

 勾选需要进行提交的文件或目录,当单击文件时底部Your version区域会显示当前文件的变化。因为IntelliJ IDEA操作的目标是变更,因此新建目录等在提交时并不会显示。
在Commit Message区域里输入提交相关信息,单击Commit按钮提交变更内容到版本库,Unversioned Files分类下的文件将同时添加到暂存区并提交到版本库。
在项目规模较大时可以取消勾选右侧的Perform code analysis代码分析功能和Check TODO (Show All)Configure代码检查功能,否则程序会因为检查内容过多而陷入长时间无响应状态。
Version Control的Log选项卡中可以看到所有的历史提交记录,如图所示。

 

 

 (6)推送提交至远程仓库

使用快捷键Ctrl+Shift+K打开推送对话框,如图所示。

 

 

 注意远程分支名称后面的New标识,这意味着远程分支是不存在的,在推送完成后将会新建同名分支。用户也可以单击远程分支名称对其进行重命名操作。
(7)Git Pull

执行Git Pull操作,执行菜单VCS→Git→Pull命令获取远程更新

 

 

 

(8)Local Changes
Local Changes选项卡列出了本地发生变化的文件,其中DefaultChangelist分类下是已经处于跟踪状态的文件,Unversioned Files分类下是未跟踪的文件,如图所示。

 

 如果Local Changes中未列出本地发生变化的文件,则可单击G按钮进行刷新并重新加载。对于加入Git管理且被删除的文件将以灰色状态显示,对于已经加入Git管理但是未提交到版本库的文件,由于在删除时会同时清空暂存区,因此不会显示在本地列表中。
用户可以在分类列表中选择多个文件并单击Commit按钮以进行提交操作,还可以单击Rollback按钮对Default Changelist分类下的文件进行回退操作,执行回退后文件将恢复至最近提交的状态,所有未提交内容都将被覆盖。要查看文件发生了哪些变化,可选择文件并单击Show Diff按钮查看文件差异。
(9)日志列表
Log选项卡列出了所有分支的提交历史,如图所示。

 

单击历史记录中的某次提交,可以在右侧窗口观察本次提交发生的变化,双击文件后在打开窗口中可以观察文件具体变更的内容。
(10)版本恢复

要执行Revert操作,则开发者可以选中Log列表中的某次提交,右击并选择Revert Commit菜单,如图所示。

 

 此操作在回退版本内容的基础上进行了一次新的提交,因此称其为恢复操作而不是回退操作。要执行回退操作,选择上图中的Undo Commit操作。





 



posted on 2022-04-01 17:26  山与月  阅读(919)  评论(0编辑  收藏  举报