Git命令&Gitee注册&idea操作git超详细

文章目录

概述

Git是目前世界上最先进的分布式文件版本控制系统
版本控制 :所谓的版本控制就是将一组文件的改动记录下来,形成版本历史,以便需要恢复
作用

1、代码共享:每位开发者可以使用Git将自己的代码上传到云服务器上,同时使用Git还可以将其他人上传的代码下载到自己的电脑上,这样实现了代码共享

2、回溯版本:Git会保存每次上传的痕迹,每上传一次就做一次备份,每次备份就相当于一个版本,任意时间可以通过Git查询曾经提交过的每一个版本对应的内容。

3、追踪信息:Git提供了强制记录日志的功能,每次上传信息都要求写日志,可以记录本次上传的相关信息

相关概念

  • 工作区:就是平时存放代码的地方
    • 一个文件夹通过git init设置成一个git可以管理的文件夹,这个文件夹中的内容(除.git文件夹)就是工作区
  • 版本库:就是安全存放数据的位置,这里面有提交到所有版本的数据
    • 其中HEAD指向最新放入仓库的版本
    • 工作区的隐藏目录.git,它不算工作区,而是版本库
  • 暂存区:index,用来暂时存放工作区中修改的内容。在加入到本地仓库前,会先放置在暂存区
    • 一般存放在.git/index文件中
  • HEAD:指向最新放入仓库的版本
  • master:是我们的主分支,是本地仓库的一部分
    • 当我们git init后,并不会立刻产生分支,而是我们添加了一个文件,并git add,git commit后这时我们查看分支情况便可以看到master分支了
  • objects:是git对象库,是用来存储各种创建的对象和内容
  • 远程仓库:托管代码的服务器,常用github,gitee,gitlab

下载和安装

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

安装过程非常简单,直接next

点击Finish完成安装,验证安装,找一个桌面空白处,右键出现下列窗口

常见命令

创建一个文件夹,右键然后点击Git Bash here

  1. 初始化工作区:git init
  2. 查看当前工作区的代码文件状态:git status
    1. 红色代表未放到暂存区
    2. 绿色代表放到暂存区
  3. 将工作区的代码文件提交到暂存区:git add 文件名
  4. 将暂存区的代码文件提交到本地仓库:git commit -m '提交信息'
  5. 差异化比较
    1. 工作区和暂存区:git diff 文件名
    2. 暂存区和本地仓库:git diff --cached 文件名
    3. 工作区和本地仓库:git diff HEAD 文件名
  6. 查看提交日志:git log/git reflog
    1. git reflog:特点是查看的提交版本号比较短
  7. 版本回退:回退哪个版本
    1. 回退到上一个版本(提交位置):git reset --hard HEAD^
    2. 回退到指定版本:git reset --hard 版本号
  8. 撤销工作区:git checkout 文件名
  9. 将代码从暂存区撤销到工作区:git reset HEAD 文件名
  10. 分支:
  11. 创建分支:git branch 分支名
  12. 查看分支:git branch
  13. 切换分支:git checkout 分支名
  14. 合并分支:git merge 分支名
  15. 删除分支:git branch -d 分支名

:合并分支

  1. 如果将其他分支合并到master主分支上,那么需要切换到master上
  2. 如果将dev分支合并到主分支master上,那么必须在dev分支上进行commit提交到本地仓库

远程仓库介绍与码云注册创建

介绍

远程仓库是公网或外网中的一个仓库,主要用于存储个人或团队的提交记录与提交日志,团队开发也是靠远程仓库实现的。大家把东西提交到同一个远程仓库里面就ok了,这样每个人都可以获取到团队内开发的所有内容了。
常用的远程仓库

码云注册

访问地址:https://gitee.com

  1. 没有账号的按要求注意并登录
  2. 创建仓库
  1. 填写对应信息
  1. 复制远程仓库的地址

远程仓库操作

关联

在推送到码云仓库前,需要先建立本地仓库与远程仓库的关系

命令:git remote add origin 远程仓库地址

拉取

从码云仓库拉取到本地仓库,在推送代码前必须先拉取代码,否则无法推送本地仓库代码到码云仓库

命令:git pull origin master --allow-unrelated-historities

首次拉取需要添加:--allow-unrelated-histories

后续拉取:git pull

推送

本地仓库到码云仓库

首次推送:git push -u origin master

后续推送:git push

克隆

如果我们新加入一个团队,这个时候就需要我们把代码从远程仓库克隆过来,先新建一个文件夹,在新的文件夹中鼠标右键点击Git bash Here,输入下面命令

命令:git clone 远程仓库地址
克隆和拉取的区别

  • 相同点:都是从远程服务器拉取代码到本地
  • 不同点:
    • 克隆:是本地没有版本库时,从远程服务器克隆到整个版本库到本地,是一个本地从无到有的过程
    • 拉取:在本地有版本库的情况下,从远程库获取最新commit数据,并merge到本地

在idea中使用git

集成

  1. 点击idea中File->settings
  2. 弹出settings后在搜索中输入"git",选择Git,指定你的安装的git.exe目录
  1. 校验git是否集成完成,点击test,弹出校验窗口,点击git Executed successed 成功则表示集成完成
  1. 创建工程
  1. 初始化工作区:点击VCS->Create Git Reposity
  1. 选择管理的文件夹,这里我现在的为gitProject文件夹
  1. 点击左下角,Git菜单,此时day0901_git下所有的文件都变成棕色,说明我们的工作区添加完成了
  1. 忽略文件类型

办法:将.gitignore文件复制到项目的根目录

add和commit

  1. 工作区提交暂存区 add

颜色变为绿色

  1. 暂存区提交到本地仓库 commit





差异化比较&查看提交记录

工作区和本地仓库比较


查看记录

版本回退及撤销

先修改java文件,提交俩次,总共有三次提交记录
本地仓库回退撤销

  1. 点击git->log查看3个提交的版本
  1. 现在在本地仓库中回退到第二次提交,选择第二次提交的标记
  1. 选择Hrad
  1. 回退成功


工作区撤销

  1. 当我们在工作区编辑代码时候,希望撤销未提交本地仓库的代码时候,在Git中右键
  1. 点击rollback
  1. 撤销成功

说明:针对上述工作区的代码撤消,有同学会有疑问,我直接删除不就完了吗,为什么这么麻烦,其实我们在实际开发中代码会很多,那么当你书写了很多不同地方的代码,以至于你都忘记哪些是新编写的代码了,那么删除是一件很痛苦的事情,并且容易误删,所以使用工作区撤销更加方便。

与远程仓库关联 push

上面已经创建了远程仓库,接下来用idea与远程仓库关联

  1. 点击推送
  1. 点击Define remote
  2. 输入上面复制的远程仓库地址
  1. 选择提交


关联远程仓库

  1. Git--->Manage Remotes ...
  1. 点击弹出窗口中的+
  1. 将复制的远程仓库地址复制到url中
  2. 成功关联

从远程仓库上拉取,克隆项目到本地

拉取

  1. 先在gitee上复制要导入项目的连接地址
  2. 点击项目->Git->pull
  1. 如果没有master按ctrl+F5


第一次拉取失败

  1. 点击右下角master
  1. 右击选择下面图中
  1. 点击merge
  1. 点击红色箭头,最后点击apply

克隆

  1. 点击git->clone
  1. 填写地址和存放项目位置
  1. Trust Project或者New Window
  2. 导入之后查看当前项目在idea中的三个环境

maven地址 File->settings

idea环境必须都是utf-8编码

当前使用的jdk8

创建分支

创建到本地分支上

切换分支

  1. 将gitee中所有的分支拉取到idea中
  1. 在idea中查看本地和远程分支
  1. 切换到dev1分支上

  1. 我们不能在master分支上进行书写代码,都是在每个分支上写代码,然后最后确定没问题之后再将其他分支上的代码合并到master代码上
  2. 在切换其他分支之前必须先将当前分支的代码进行提交,否则当前分支的代码就不存在了

提交当前分支的代码

看上面commit
切换分支

将除了master分支推送到gitee上

和上面一样,有个简化的是中间commit和push


注意:推送的一定是dev1分支上的代码,如果推送的是master分支上的代码就会报错。

将其他分支代码合并到master分支上并上传提交

要想将dev1分支代码合并到master分支上,首先需要切换到master分支上,然后在合并

  1. 将dev1分支上的代码提交
  2. 切换到本地master分支
  1. 将dev1分支代码合并到master分支上
  1. 将master分支上的代码提交并推送到gitee上

处理版本冲突

当多个用户对同一个文件交叉修改的时候就尴尬了。A修改完提交一个,B修改完又提交一个,这个时候A修改完提交,问题来了,如果A提交成功,那么就相当于忽略了B提交的内容。这个时候就要强制你去处理一下这个问题,这就是我们所说的冲突问题。

  1. 先拉取代码,这时候App的类变成红色,且弹出窗口,需要手动进行合并
  1. 解决冲突
  1. 选择主干
  1. 推送到远程仓库
相关推荐
金銀銅鐵1 小时前
[git] 浅解 git reset 命令
git·后端
zhangfeng11331 小时前
部署到服务器上 宝塔系统 使用宝塔在线编辑器 FTP 批量上传 Git 部署 打包上传 codebudyy 编程程序开发
服务器·git·编辑器
活跃的煤矿打工人2 小时前
【星海随笔】Gitee
gitee
学习是种信仰2 小时前
Git工作流
git·深度学习
yuanyuan2o24 小时前
Git merge 的几种不同模式
git·github
视觉小萌新4 小时前
关于Vscode配置企业Git
git
zh_xuan5 小时前
使用命令行把安装包上传到github
c++·git·libcurl·c++工程打包
zhangfeng11336 小时前
适合 5人以内小团队的Git 工作流 + Code Review + 自动化部署方案 FastAdmin +linunx服务器宝塔系统 外包项目 —
服务器·git·自动化·php·代码复审
念一不念二10 小时前
[Git]git仓库管理的使用
git