当前位置: 首页 > news >正文

Git常用命令以及如何在IDEA中使用Git

前言

Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等)。Git在管理文件过程中会记录日志,方便回退到历史版本;Git存在分支的概念,一个项目可以有多个分支(版本),可以任意切换;Git支持多人协作,即一个团队共同开发一个项目,每个团队成员负责一部分代码,通过Git就可以管理和协调;Git通过仓库管理文件,在Git中存在远程仓库,如果本地文件丢失还可以从远程仓库获取。

通过Git 仓库来存储和管理这些文件,Git 仓库分为两种:

本地仓库:开发人员自己电脑上的 Git 仓库

远程仓库:远程服务器上的 Git 仓库

Git下载与安装

下载地址: https://git-scm.com/download

直接双击完成安装即可,安装完成后可以在任意目录下点击鼠标右键,如果能够看到如下菜单则说明安装成功:

Git GUI Here是打开Git 图形界面,一般不怎么使用。Git Bash Here是打开Git 命令行的。

Git代码托管服务

Git远程仓库可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。

gitHub:https://github.com/ ,一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub(网站在国外,访问速度很慢)

码云:https://gitee.com/ ,国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快(推荐)。

使用码云的操作流程如下:

  1. 注册码云账号

  1. 登录码云

  1. 创建远程仓库

  1. 邀请其他用户成为仓库成员(自己学习则可以忽略这一步),同仓库的成员可以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仓库(不常用)

  1. 在任意目录下创建一个空目录作为我们的本地Git仓库

  1. 进入这个目录中,点击右键打开Git bash窗口

  1. 执行命令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中图形化操作更加简便。

http://www.lryc.cn/news/12581.html

相关文章:

  • 音乐播放器-- 以及数据库数据存储
  • [JAVA安全]Spring Messaging之CVE-2018-1270
  • CAN通信笔记-位时间、Tq及采样点同步
  • 玩转 Kubernetes 配置管理:ConfigMap 和 Secret 实战演示
  • Kubernetes
  • 从零开始 verilog 以太网交换机(三)MAC发送控制器的设计与实现
  • 使用vector<char>作为输入缓冲区
  • 自己在网站搭建用到的一些网站
  • XLSReadWriteII5 Color 颜色l的调用和使用
  • RT-Thread SP使用教程
  • LeetCode 2363. 合并相似的物品
  • numpy 中常用的数据保存、fmt多个参数
  • 从0到1一步一步玩转openEuler--19 openEuler 管理服务-特性说明
  • 23美赛E题:光污染(ICM)完整思路Python代码
  • 快速排序的描述以及两种实现方案
  • 算力引领 数“聚”韶关——第二届中国韶关大数据创新创业大赛圆满收官
  • MySQL 记录锁+间隙锁可以防止删除操作而导致的幻读吗?
  • 【分库分表】企业级分库分表实战方案与详解(MySQL专栏启动)
  • (考研湖科大教书匠计算机网络)第五章传输层-第五节:TCP拥塞控制
  • 13.使用自动创建线程池的风险,要自己创建为好
  • 【项目设计】—— 负载均衡式在线OJ平台
  • Docker学习笔记
  • 【爬虫理论实战】详解常见头部反爬技巧与验证方式 | 有 Python 代码实现
  • 基于SpringBoot+Vue的鲜花商场管理系统
  • 华为OD机试 - 静态扫描最优成本(JS)
  • 多层感知机
  • python在windows调用svn-pysvn
  • office365 word 另存为 pdf 的注意事项和典型设置
  • Spring IoC容器之常见常用注解以及注解编程模型简介
  • 超详细讲解文件函数