Git学习笔记

一.Git的简介

Git是分布式版本控制系统。

工作流程图

二.Git的基本配置

1.基本配置

查看所有配置

git config --list

查看用户名和邮箱配置

git config --global --get user.name
git config --global --get user.email

2.填写用户名和邮箱

Git是分布式版本管理系统初次使用需要设置用户名和邮箱,Git使用用户名和邮箱来标记每次提交的作者,这样就可以清楚的知道程序的更改是由谁操作的。

用户名配置

git config --global user.name "junzhao"

邮箱配置

git config --global user.email "xxxxxxxx@qq.com"

删除用户名配置和邮箱配置

git config --global --unset user.email
git config --global --unset user.name

3.创建本地空仓库

1.创建仓库目录(其实就是创建文件夹)

mkdir test

2.进入目录(其实就是进到文件夹)

cd test

3.创建本地仓库

git init

三.Git的基本操作

1.文件添加到本地仓库

创建文件(点后面可以选择对应的后缀名)

touch test.c

touch test.txt

touch junzhao.c

touch junzhao.txt

文件添加到本地仓库(添加的同时需要使用git commit 添加修改的描述信息)

添加到本地仓库

将文件添加到暂存区里面。

git add test.c 

添加修改的描述信息

提交暂存区的内容到本地仓库。

git commit -m "add new file \"test.c\""

注意:引号里面是描述的内容

2.查看提交信息

查看历史提交日志

git log

查看暂存区的内容(就是add添加到暂存区的位置)

显示当前工作目录和暂存区的状态。

#查看所有文件状态
git status

#查看指定文件状态
git status [filename]

然后,我们将文件添加到暂存区里面。

最后。我们将文件存到本地仓库。


查看文件的修改内容

当我们修改了文件的内容后,我们用git status查询会发现文件被修改,我们可以使用下面的命令来查询修改了那些内容。

git diff hellow.txt

接着我们查询修改了那些内容。


查看文件中的内容

cat hellow.txt

3.版本退回操作

文件回到上一个版本

git reset --hard HEAD^

原本文件内容是3个1,3个2和3个3.使用这个命令后文件的内容退回到上一版本。

我们可以看线日志。


文件恢复到最新版本

首先我们要查询内容里面有333时间是那个版本的。

获取版本号

git reflog

恢复版本的内容

由上面我们可以查到每个操作的版本号(前面数字和字母组成),我们根据这个版本号恢复到原来的版本。

git reset --hard 61f4eeb

4. 撤销工作目录中的修改

这个命令是如果被修改但尚未暂存(即没使用git add命令添加到暂存区),可以使用这个命令来撤销对工作目录中该文件的更改。

git checkout hellow.txt

5.删除本地仓库内的文件

这个命令可以将本地文件夹内的文件直接删除。

rm hellow.txt

文件夹内的结果:

四.远程仓库同步

在Git中,本地仓库和远程仓库之间的数据传输是通过一系列的Git命令来实现的,这些命令主要用于将更改从一个仓库同步到另一个仓库。

在这篇文章里面我们用的是gitee远程仓库(因为不用饭墙)

设置本机绑定SSH公钥(免密登录)

首先,我们点开gitee的下面这个界面。

然后,我们在本机电脑打开.ssh文件夹,打开git bash窗口。

在窗口中输入代码生成公钥。

ssh-keygen -t rsa

将.pub内的内容复制到gitee的公钥中。

使用gitee创建一个自己的仓库。


克隆远程文件夹

在本地仓库文件夹打开窗口克隆即可。

git clone https://gitee.com/panjunzhao/junzhaoxx.git

五.Git中的分支

在Git中,分支是一种非常强大的特性,其允许你在一个项目的不同版本间进行切换和开发,而不会影响到其他分支上的工作。

查看分支

git branch -v

在这里我们可以看到当前没有分支。


创建分支

创建一个名为fenzhiming的分支

git branch fenzhiming

切换分支

git checkout fenzhiming

然后我们再查看分支发现星号在fenzhiming的前面了。


合并分支

假设我们在master分支和fenzhiming分支内,fenzhiming分支中的内容是修改过的,现在我们要将这两个分支去合并。在这里我们是站在主分支master上去合并fenzhiming分支的。

git merge fenzhiming

最后我们会看到两个分支的内容变得相等了。(用的别人的例子)


合并冲突

在Git中,合并冲突(Merge Conflicts)是当两个分支中的更改无法自动合并时发生的一种情况。这通常发生在两个分支在同一文件的同一部分都进行了修改,并且Git无法确定应该采用哪个版本的更改时。下图我们在主分支和副分支都更改了文件的内容。

现在我们去合并分支。我们会发现现在的分支合并的内容有冲突了合并失败了。

我们查看git status会发现两个分支都有修改。

所以,接下来我们进行手动合并。

vim hellow.txt

将其保存好再添加到本地仓库即可。

最后合并的结果。

相关推荐
晨春计18 分钟前
【git】
android·linux·git
优思学院18 分钟前
优思学院|如何从零开始自己学习六西格玛?
大数据·运维·服务器·学习·六西格玛黑带·cssbb
LN花开富贵33 分钟前
stm32g431rbt6芯片中VREF+是什么?在电路中怎么设计?
笔记·stm32·单片机·嵌入式硬件·学习
怀九日34 分钟前
C++(学习)2024.9.18
开发语言·c++·学习·面向对象·引用·
一道秘制的小菜34 分钟前
C++第七节课 运算符重载
服务器·开发语言·c++·学习·算法
qq210846295342 分钟前
【stm32笔记】使用rtt-studio与stm32CubeMx联合创建项目
笔记·stm32·嵌入式硬件
念幽1 小时前
Git常用命令
git
极术社区1 小时前
ResNeXt学习
开发语言·学习·计算机视觉·php
神技圈子1 小时前
【git系列】git中的那些迷惑的术语以及概念详解
git
liangbm31 小时前
MATLAB系列07:输入/输入函数
开发语言·数据库·笔记·matlab·函数·自定义函数·matlab函数