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

Git基本操作与分支

一、操作入门

先看大屏幕:先背过

再来操作

初始化

刚入门的小朋友可能出现这种问题:

原因是:需要自己创建一个记事本文件

add的作用是添加指定文件到暂存区。

commit是提交暂存区到仓库区,此处的仓库是本地仓库,本地仓库也是版本库

版本库:

what:包含项目所有的版本历史

where:存储在 .git 目录中,它包含了所有提交的对象和引用

为什么要add到暂存区?

第一次查看status,显示有变更的文件。

在对文件增加第二行后,status,出现了修改的提示,是未被提交的修改。

这里的操作是:

  1. 修改完文件后,先status查看,发现修改了

  2. 忽略了add

  3. 直接commit

  4. 再次status查看

结果是文本已更新,但是显示暂存区没有东西提交

直接执行 git commit,Git 会检查暂存区。此时的暂存区是空的,返回一个错误

工作目录是干净的,没有未提交的更改,因为没有文件被添加到暂存区。有未跟踪的文件存在,你需要使用 git add 命令来跟踪这些文件。

那么,什么是暂存区呢?为什么会出现暂存区呢?

暂存区——在对项目文件进行修改后,这些修改并不会立即被提交到版本库中。

存在的目的,是你需要将这些修改先添加到暂存区,出去暂存区的文件可以及时进行修改删除,回退,经过检查后将其作为一个整体提交到版本库中。

添加指定文件到暂存区

git add [file1] [file2] ...

添加指定目录到暂存区,包括子目录

git add [dir]

添加当前目录的所有文件到暂存区

git add .

添加每个变化前,都会要求确认

对于同一个文件的多处变化,可以实现分次提交

git add -p

删除工作区文件,并且将这次删除放入暂存区

git rm [file1] [file2] ...

停止追踪指定文件,但该文件会保留在工作区

git rm --cached [file]

改名文件,并且将这个改名放入暂存区

git mv [file-original] [file-renamed]

添加了第三行后,status

提交成功。

我们要把修改的内容提交到版本库

what:版本库是做什么的,受版本控制的所有文件修订历史的共享数据库

tip:

修订(Revision)
表示代码的一个版本状态。Git通过用SHA1 hash算法表示的ID来标识不同的版本

why:这里涉及一个Git的版本控制

二、通观全局识Git

这是Git在本地仓库的基本操作过程。

 

三、分支

分支中,我们主要进行一下几个操作

创建/切换分支

 git branch [branch-name] 

 git checkout [branch-name] 

 合并分支

 git merge [branch-name] 

删除分支

 git branch -d [branch-name] 

查看分支

 git branch 

实践一下——关于分支冲突

  1. 创建见一个分支
  2. 查看所有分支——*代表当前分支

后面蓝色括号里也是当前分支

  1. 在dev分支上操作(注意在修改完文件后,一定要记得保存。)

  1. 在master分支上操作

  1. 合并分支产生了冲突

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中<<<HEAD是指主分支修改的内容,>>>>>dev 是指分支上修改的内容

  1. 运行git add命令,将修改后的文件添加到暂存区;在使用git commit -m"解决合并冲突"命令提交合并。若有多个分支,采取逐个合并,逐个解决冲突的方式。

  1. 合并被提交后,使用git push origin推送到远程仓库。

 

总结 

        林林总总大概花了一周的时间,算是把Git学完了,其实Git不是很难,大家不要把他想得很复杂,弄清楚他的底层原理,明白他是要干什么,为什么会有这个东西,他和谁一起在使用,以及我们要达成什么样的目的,就清晰明了了。

        建议大家边操作,边学习,一个部分学习完了,自己做一下思维导图,就十分清晰了,我相信这个三天就可以学完了。

好久没有写博客了,这次的开始,很激动!


http://www.kler.cn/news/342027.html

相关文章:

  • 【笔记学习篇】一篇文章搞定Mybatis-快速回顾
  • Python的输入输出函数
  • CAN和CANFD如何转换和通信
  • Github优质项目推荐-第四期
  • tableau除了图表好看,在业务中真有用吗?
  • 拓扑排序与入度为0的结点算法解析及实现
  • 机器学习:关联规则:Apriori算法、FP - Growth算法的原理、应用场景及优缺点介绍
  • 计组复习笔记
  • 博士找高校教职避坑指南:史上最全的避坑秘籍
  • vue中用echarts做一个躺着的柱状图
  • ubutun安装ffmpeg
  • LeetCode 3309. 连接二进制表示可形成的最大数值
  • MSYS2+GCC 安装与应用保姆手册
  • Java 函数式编程(1 万字)
  • 【JDK17 | 7】Java 17 深入剖析:基础概述与新特性实战
  • MinIO分片上传超大文件(纯服务端)
  • 链式二叉树及二叉树各种接口的实现(C)
  • FFmpeg 简介及其下载安装步骤
  • 2024互联网下载神器IDM6.42你值得拥有
  • Python编写的数字光刻仿真程序,使用了Hopkins光刻模型和粒子群优化(PSO)算法来优化掩模设计