IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git知识总结 -> 正文阅读

[开发工具]Git知识总结

Git简介

Git 是一个免费的、开源的分布式版本控制系统。那么他有什么用处呢?举个例子:

比如我们在做课程设计的时候,总是害怕在原来的代码上进行修改会让整个系统跑不起来,于是我们会将源代码复制一份,在复制后的文件中进行下一个功能或者模块的开发,如果我们有许多的模块要开发,那么我们就要将同一个文件夹复制许多份,复制多了我们可能都不知道哪个文件夹里面具体包含了哪些功能,这个时候Git就派上了用场,我们只需要在开发好一个功能后在Git上提交一次(打一个版本),然后继续下一个功能的开发,如果下一个功能出错,我们想要重新进行开发,那么我们就可以使用Git回退到之前的版本,再次进行开发。Git的每一个提交叫做一个版本,因此他叫版本控制,这样就不用再复制很多次文件了,而且有了Git,我们也可以对文件不同提交的状态简要了解,这样就可以提高我们的开发效率。

当然,这只是Git中一个小小的作用,他还有很多用处以及优点。

Git安装

  • 安装网址 : https://git-scm.com/downloads

  • 下载安装包后一路Next,中间只需要修改一下安装路径即可

  • 安装好后在桌面或者文件夹里面右击,然后点击Git Bash Here,在弹出的命令窗口输入git --version,若输出版本信息证明安装成功

Git在本地的基本操作

1. 初始化本地仓库:(仓库其实就是使用git进行管理的文件夹) 对应命令:git init

在本地创建一个文件夹,进入文件夹,右击鼠标点击Git Bash Here打开Git的命令窗口,输入命令 git init 进行初始化,初始化成功后会在 当前目录生成一个.git 目录文件,不要删除及修改。

2. Git的存储流程:

代码工作区—>执行 git add —>暂存区(临时存储)—>执行 git commit—>本地库(历史版本)

  • 工作区(也就是上面新建的文件夹)、暂存区和本地仓库,逻辑上就是本地计算机。

  • 当我们新建一个文件时,文件位于工作区,处于已修改(modified)状态,表明文件已进行了修改,但还没有提交保存;

  • 通过命令 git add 将其添加到暂存区,文件是已暂存(staged)状态,表示把已修改的文件放到 下次提交时要保存的清单中;

  • 通过命令 git commit 将文件放入本地仓库,文件为已提交 (commited)状态,表示该文件已经被安全地保存在本地数据库中,到这一步可以说是成功生成了一个新的版本。

远程仓库用来将本地仓库上传到网络,实现备份、共享和合作。

3. Git的基本命令

  • 添加文件:将文件添加到暂存区

git add 文件名

git add . (将当前目录下的文件全部添加到暂存区)

  • 提交文件:将文件提交到本地仓库

git commit -m “提交注释”

  • 查看状态:查看目录中是否还有文件未提交

git status

  • 查看文件修改对比差异:将工作区中的文件和暂存区进行比较

git diff 文件名

  • 查看日志:查看历史记录,并以简短信息显示

git reflog

在这里插入图片描述

最上面的是最近一次操作,每一行最前面的7位数字/字母为版本号

  • 前进回退

git reset --hard 版本号

  • 删除文件

rm 文件名

将文件添加到缓存区中,然后提交,就是彻底删除

  • 恢复文件

对于删除文件也可使用 reset 命令恢复,因为之前的版本中它可能还存在

  • 分支操作
  1. 在版本回退那里,已经知道每次提交,git 都会把他们串成一条时间线,这条时间线就

? 是一个分支。截止到目前,只有一条时间线,在 git 里,这个分支叫主分支,即 master。

  1. 切换分支即可以理解为切换时间线。

  2. 在版本控制过程中,使用多条线同时推进多个任务。每条线成为一个分支。

在这里插入图片描述

创建分支:git branch [分支名]

查看分支:git branch –v

切换分支:git checkout [分支名]

合并分支( merge/rebase ):

  • 第一步:切换到接受合并的分支

git checkout [接受合并的分支名]

  • 第二步:执行 merge 命令

git merge [待合并的分支名]

**删除分支命令:**git branch –d [分支名]

Git在远程的基本操作

1. 克隆远程仓库到本地:

git clone 仓库地址

在这里插入图片描述

此处是将整个仓库克隆到本地,不需要我们在本地进行git init

2. 将本地仓库所有内容上传到远程仓库

git push [远程仓库地址] [远程仓库分支]

3. 拉取远程库内容

git pull 远程仓库地址

4. 冲突问题解决

造成冲突的原因是:比如,两个人在合作开发,目前远程仓库的版本以及两人本地的版本都是A,此时一个人写了一些代码后进行提交,使得远程仓库的版本变成了B,而另一个人提交时,由于他是在A版本的基础上做出的修改,而此时远程仓库的版本不是A,这是git就不会让他提交。

如果提交失败,解决的总体思路就是:

  1. git pull
  2. 修改
  3. git add .
  4. git commit
  5. git push

我觉得主要有下面几种情况:

  1. 其他人在远程仓库删除了某个文件,但是本地还有:

直接:

  1. git pull
  2. git add .
  3. git commit
  4. git push
  1. 其他人在远程仓库增加了某个文件:

直接:

  1. git pull
  2. git add .
  3. git commit
  4. git push
  1. 其他人在远程仓库修改了某个文件内容,本地也修改了这个文件

比如:

本地仓库中该文件内容为:“本地仓库的内容”

远程仓库中为:“远程仓库的内容”

则git pull之后就变成了:在这里插入图片描述

此时,手动选择文件中的你想要的内容,然后 add commit push 即可

在IDEA中使用Git

文件名字为红色代表未被git工具进行管理

? 绿色代表使用git进行了管理,但是没有打过版本(本地仓库没有没有它)

? 蓝色代表进行了修改,但是没有提交仓库

? 白色代表一切正常

1. 使用IDEA提交代码

  • 创建本地仓库:
    在这里插入图片描述

  • 将项目添加到缓存:
    在这里插入图片描述

  • 提交项目:
    在这里插入图片描述

  • 推送到远程仓库:

    如果未添加远程仓库,则要添加远程仓库:

    在这里插入图片描述

    可能会出现上传不成功的现象,需要执行以下命令:

    1. git pull origin master --allow-unrelated-histories

      把远程仓库中的内容 pull 到本地工作目录

    2. git push -u origin master -f

      在 pull 下来的项目中做完修改后,通过以上命令push到远程仓库了

    2. 在IDEA中用git获取新项目代码

  • 选择从git导入项目
    在这里插入图片描述

  • 克隆远程仓库:

3. 解决冲突问题

  • 现在远程模拟另一个人进行修改:
    在这里插入图片描述

  • 然后本地进行修改:
    在这里插入图片描述

  • push时会弹出以下窗口:
    在这里插入图片描述

    cancle是取消,merge是进行合并,rebase恢复到原来

    我们点击合并按钮

    在这里插入图片描述

    弹出的窗口中会显示发生冲突的文件

    选择一个文件,再次点击右边的Merge

    左边是本地修改后的状态,右边是远程的状态,中间是他俩修改之前相同的状态

    在这里插入图片描述

    如下图,可以点击箭头选择想要的文件状态

    这里是把两边都合并了进去

    在这里插入图片描述

    在这里插入图片描述

    最后再次add,commit,push就OK了

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-01-16 13:16:35  更:2022-01-16 13:17:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:48:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码