目录
前言
git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(java类、xml文件、html页面等)。git在管理文件过程中会记录日志,方便回退到历史版本;git存在分支的概念,一个项目可以有多个分支(版本),可以任意切换;git支持多人协作,即一个团队共同开发一个项目,每个团队成员负责一部分代码,通过git就可以管理和协调;git通过仓库管理文件,在git中存在远程仓库,如果本地文件丢失还可以从远程仓库获取。
通过git 仓库来存储和管理这些文件,git 仓库分为两种:
本地仓库:开发人员自己电脑上的 git 仓库
远程仓库:远程服务器上的 git 仓库
git下载与安装
下载地址:
直接双击完成安装即可,安装完成后可以在任意目录下点击鼠标右键,如果能够看到如下菜单则说明安装成功:
git gui here是打开git 图形界面,一般不怎么使用。git bash here是打开git 命令行的。
git代码托管服务
git远程仓库可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有github、码云、gitlab等。
github:https://github.com/ ,一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名github(网站在国外,访问速度很慢)
码云:https://gitee.com/ ,国内的一个代码托管平台,由于服务器在国内,所以相比于github,码云速度会更快(推荐)。
使用码云的操作流程如下:
- 注册码云账号
- 登录码云
- 创建远程仓库
- 邀请其他用户成为仓库成员(自己学习则可以忽略这一步),同仓库的成员可以pull 和push
git常用命令
当安装git后要设置用户名称和email地址。这是非常重要的,因为每次git提交都会使用该用户信息。在git 命令行中执行下面命令:
设置用户信息
git config --global user.name "xxxxx" git config --global user.email "xxxx@xxx.xxx"
user.name和user.email并不是我们在注册码云账号时使用的用户名和邮箱,此处可以任意设置
查看配置信息
git config --list
要使用git对我们的代码进行管理,首先需要获得git仓库。
获取git仓库通常有两种方式:
在本地初始化git仓库(不常用)
- 在任意目录下创建一个空目录作为我们的本地git仓库
- 进入这个目录中,点击右键打开git bash窗口
- 执行命令git init
如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明git仓库创建成功
从远程仓库克隆(常用)
可以通过git提供的命令从远程仓库进行克隆,将远程仓库克隆到本地
命令格式:git clone 远程仓库地址
本地仓库常用命令
git status 查看文件状态(untracked 未跟踪(未被纳入版本控制)、unmodified 未修改状态、modified 已修改状态、staged 已暂存状态)
git add 将文件的修改加入暂存区(命令格式:git add 文件名)
git reset 将暂存区的文件取消暂存或者是切换到指定版本(取消暂存命令格式:git reset 文件名;切换到指定版本命令格式:git reset --hard 版本号)
git commit 将暂存区的文件修改提交到版本库(命令格式:git commit -m 自己写的日志备注 文件名)【-m:代表message,每次提交时需要设置,会记录到日志中可以使用通配符*一次提交多个文件】
git log 查看日志
远程仓库操作
git remote 查看远程仓库(后面添加-v参数查看远程仓库更加详细的信息)
git remote add 添加远程仓库(命令格式:git remote add 简称 远程仓库地址)
git clone 从远程仓库克隆(克隆仓库的命令格式: git clone 远程仓库地址)【git 克隆的是该 git 仓库服务器上的几乎所有数据(包括日志信息、历史记录等)】
git push(将本地仓库内容推送到远程仓库,命令格式:git push 远程仓库简称 分支名称)【如果是第一次操作,需要进行身份认证,用户名和密码对应的就是我们在码云上注册的用户名和密码】【一个仓库可以有多个分支,默认情况下在创建仓库后会自动创建一个master分支】
git pull从远程仓库获取最新版本并合并到本地仓库(命令格式:git pull 远程仓库简称 分支名称)
注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错,解决此问题可以在git pull命令后加入参数--allow-unrelated-histories.
分支操作
分支是git 使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。本地仓库和远程仓库中都有分支,同一个仓库可以有多个分支,各个分支相互独立,互不干扰。通过git init 命令创建本地仓库时默认会创建一个master分支。
git branch 查看分支【
git branch 列出所有本地分支
git branch -r 列出所有远程分支
git branch -a 列出所有本地分支和远程分支
】
git branch [name] 创建分支【命令格式:git branch 分支名称】
git checkout [name] 切换分支【命令格式:git checkout 分支名称】(在命令行中会显示出当前所在分支)
git push [shortname][name] 推送至远程仓库分支【命令格式:git push 远程仓库简称 分支命令】
git merge [name] 合并分支【命令格式:git merge 分支命令】
分支合并时需注意合并的方向,例如在master分支执行操作,结果就是将另一分支合并到master分支。
标签操作
git 中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。
比较有代表性的是会使用这个功能来标记发布结点(v1.0 、v1.2等)。
git tag 查看标签
git tag [name] 创建标签【命令:git tag 标签名】
git push shortname 将标签推送至远程仓库【命令:git push 远程仓库简称 标签名】
git checkout -b branch 检出标签【检出标签时需要新建一个分支来指向某个标签,检出标签的命令格式:git checkout -b 分支名 标签名】
在idea中使用git
在ieda中配置git,配置好后就可以在idea中通过图形化的方式来操作git。
在idea中使用git,本质上还是使用的本地安装的git软件,所以需要提前安装好git并在idea中配置git。如果git安装在默认目录中(c:\program files\git),则idea中无需再手动配置,直接就可以使用。
在idea开始窗口中点击【get from version control】,然后在弹出的【get from version control】窗口中输入远程仓库的url地址和对应的本地仓库存放目录,点击【clone】按钮进行仓库克隆操作。
在git工作区中有一个特殊的文件 .gitignore,通过此文件可以指定工作区中的哪些文件不需要git管理。我们在使用git管理项目代码时,并不是所有文件都需要git管理,例如java项目中编译的.class文件、开发工具自带的配置文件等,这些文件没有必要交给git管理,所以也就不需要提交到git版本库中。注意忽略文件的名称是固定的,不能修改。添加到忽略列表中的文件后续git工具就会忽略它
idea右上角:
查看日志:右击(项目名称上右击则查看整个项目日志,某个文件上右击则查看某个文件日志):
一个本地仓库可以配置多个远程仓库,在【git remotes】窗口中点击【 】来添加一个新的远程仓库:
idea右下角:
在【git branches】分支窗口中点击【new branch】可以创建一个分支。
关于切换分支,在某个分支上可以点击出来提示框,上面有checkout的选项,然后将分支推送到远程仓库和进行分支的合并都是可以操作的,逻辑与之前命令方式一样,在idea中图形化操作更加简便。