Git就该这么学~ 从入门到操作 学不会 来打我~

Git 就这么学

前言

本文借鉴了 《Git学习指南》这本书的学习思想与学习结构。

本文操作系统环境是在CentOS/Linux 7.6 环境下编写。

因为在现如今分布式系统盛行的时代,工作当中不可缺少git,最为博主的我最近也在学习这门技术,所以有了本篇文章。

作者会根据大体结构把可能经常在开发当中经常使用的命令进行划分归类并且细致整理。

望诸君 事业有成 学有所获。

如果可以 请记得 动动小手 一键三连

Git的发展历史

发展过程与历史

当一个小组团队(三个娃)打算开发一款很小的项目时,不乏会出现我此时对代码一处地方进行了修改,而另一位小伙伴并没有接收到我的修改,而在原来的基础上继续修改其他代码,此时就出现了三个版本:初始版本、我的版本和他的版本。那么最后我们该如何选择版本提交项目呢。

于是早在很久以前Linus这个人呢,(也就是把Linux操作系统写出来的神)在得知BitMover公司开发的BitKeeper分布式版本控制系统停止免费对外开放时,就自己用了两个星期的时间开发出了git,而git随着时间的发展,目前已经成为了世界上最大的开元分布式版本管理系统

版本控制

常见的版本控制工具

  • Git(分布式版本控制代表)
  • SVN(SubVersion 是集中式版本控制的代表)

那什么是分布式版本控制?什么是集中式版本控制呢?

分布式版本控制

在这里插入图片描述

就是每个开发者都在自己的计算机上有一个包含所有项目文件的工作目录(即Workspace 后面会说道)。当开发者都在本地作了修改之后,他会定期将自己的修改提交到远程服务器上。然后开发者在更新数据之前都会从远程服务器把当前版本给获取下来。这台远程服务器存储着这些文件(版本库)的当前版本和历史版本。不过增加了本地存储空间的占用。

集中式版本控制

所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不联网的话,用户就看不到历史版本,也无法切换版本验证问题。而且所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。

分布式版本控制与集中式版本控制的区别

Git与SVN区别

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的项目推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求比较高。

Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候就不需要联网了,因为版本都在自己电脑上,协同的办法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了A,这时,只需要把各自修改推送给对方,就可以互相看到对方的修改了。

Git是目前世界上最先进的分布式版本控制系统。

Git 基本理论(核心知识)

在学习git的相关命令操作之前我们要先学习一下git的基本理论知识。(核心重点)

工作区域

Git本地中是有三个工作区域的:也就是之前说过的workspace(工作目录)、暂存区(Stage、Index指向的区域)、资源库(Repository)、再加上远程的git仓库 可以共分为四个工作区域,他们之间的转换关系如图所示:

在这里插入图片描述

  • Workspace:工作区,就是你平时存放项目代码的地方。
  • Index/Stage:暂存区,用于临时存放你的改动,事实上他只是一个文件,保存即将提交到文件列表信息。
  • Repository:仓库区(或者本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。
ref: refs/heads/master
# 指向的是主分支
  • Remote:远程仓库,托管代码的服务器,可以简单地认为是你项目组中的一台电脑用于远程数据交换。

Git文件操作——文件的4种状态

版本控制说白了就是对修改更新版本后的文件或者项目的版本控制,对文件更新、提交等操作,要先知道当前文件处于什么状态,是否在暂存区,是否需要提交,是否修改过,这就是文件的状态。转换之间如上个模块所示:

  • Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制,通过**git add状态转换为staged.**
  • Unmodify: 文件已经入库,未修改,即版本库中的文件快照内容与文件夹完全一致,这种类型的文件有两种去处,如果他被修改了,而变为**Modified** . 如果使用 **git rm**移除版本库,则成为 **Untracked**文件。
  • Modified:文件已修改,仅仅是修改,并没有进行其他的操作,这个文件也有两个去处,会通过**git add** 可进入暂存 staged状态,使用 **git checkout**则丢弃修改过,返回到 unmodify状态,这个git checkout 即从库中取出文件,覆盖当前修改!
  • Staged:暂存状态,执行**git commit** 则将修改同步到库中,这时候库中的文件和本地文件又变为一致,文件为 unmodify状态,执行 git reset HEAD filename 取消暂存,文件状态为Modified.

Git 环境配置

安装Git

[root@alascanfu ~]# yum -y install git

配置Git

## 本文这里代表注释哦~
## config是配置
## --global是当前全局配置

## 配置用户与邮箱
[root@alascanfu ~]# git config --global user.name Alascanfu
[root@alascanfu ~]# git config --global user.email 3201256097@qq.com
## -l 是显示除了系统配置以外的配置
[root@alascanfu ~]# git config -l
user.name=Alascanfu
user.email=3201256097@qq.com

## 这个是显示系统设置 其主要是访问gitconfig文件中所写好的配置
[root@alascanfu ~]# git config --system -l
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=F:/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=true
pull.rebase=false

Git的常用指令

创建本地版本库 git init

创建本地版本库(也被称之为workspace):git init

[root@alascanfu ~]# git init
Initialized empty Git repository in /root/.git/
[root@alascanfu ~]# cd .git
[root@alascanfu .git]# ls
branches  config  description  HEAD  hooks  info  objects  refs

这里作者是举例哈~

在当前用户根目录下git init创建好了本地版本库,随后会生成一个隐藏的文件夹.git进入文件夹之后查看当前目录下的文件。其中这个Index指向的是暂存区,而HEAD指向的是分支。

查看当前版本库中文件所处状态 git status

查看文件状态

[root@alascanfu ~]# git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#	helloGit.txt
nothing added to commit but untracked files present (use "git add" to track)

此处的helloGit.txt是博主通过touch helloGit.txt创建出来的文件所以此时他此时处于Untracked files,

[root@alascanfu ~]# git status helloGit.txt 
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	helloGit.txt
nothing added to commit but untracked files present (use "git add" to track)

也可以通过git status [filename]来获取指定文件的状态、

## 随后将其加入到暂存区 再看其状态
[root@alascanfu ~]# git add helloGit.txt 
[root@alascanfu ~]# git status helloGit.txt 
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#	new file:   helloGit.txt
#
## 此时状态为new file 需要被提交的状态 也就是已经加载到暂存区的位置了

git commit -m “msg”

## 将暂存区的文件提交到本地仓库当中。-m 后面接更新的信息
[root@alascanfu ~]# git commit -m "First-version"
[master (root-commit) a65df0c] First-version
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 helloGit.txt

git commit --amend

这个又是什么呢? --amend这个参数是用来改写提交的,且此次提交不会出现在log当中。 而是以此次提交作为最后结果,不过 git reflog还是可以看到滴,所以还是要注意提交哦~

既然刚刚说道log了 那接着讲查看历史版本提交情况 git log

## git log 查看版本日志
## git log [file-name]查看指定文件的版本日志
[root@alascanfu ~]# git log
## 提交的是一串hash值
commit a65df0cd4e5cf73a8b922e0b38ce39bd1b693fac
## 用户 <邮箱>
Author: Alascanfu <3201256097@qq.com>
## 格林时间 + 东八区
Date:   Sat Dec 18 01:20:27 2021 +0800
## 提交的版本信息
    First-version

回滚到之前版本

既然有版本之分就不得不提到回滚,当测试猿小fu不小心启用新的版本的时候,发现有新的错误使得当前版本不可上线,但是我却上线了这个项目,那就可不只是kill 个开发那么简单了,所以弥补办法也就是回滚出现了。

## 比如此时小付呢 对这个刚才提交的版本的文件进行了更新 写入了数据
[root@alascanfu ~]# vim helloGit.txt 

## 那么此时其状态 就会变成modified 这个时候就需要重新 add 与 提交
[root@alascanfu ~]# git status helloGit.txt 
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   helloGit.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

[root@alascanfu ~]# git add helloGit.txt 

[root@alascanfu ~]# git commit helloGit.txt -m "Second-version"
[master cfd37d4] Second-version
 1 file changed, 2 insertions(+)

commit cfd37d4e8d55d842e0f444f893792a165f309dde
Author: Alascanfu <3201256097@qq.com>
Date:   Sat Dec 18 01:38:29 2021 +0800

    Second-version

commit a65df0cd4e5cf73a8b922e0b38ce39bd1b693fac
Author: Alascanfu <3201256097@qq.com>
Date:   Sat Dec 18 01:20:27 2021 +0800

    First-version
## 所以此时 有了两个版本了

咱们进行回滚

回滚到对应hash值的版本

git reset --hard [hashcode]

回滚到当前版本分支指向的的上一个版本

git reset --hard HEAD^

回滚到本地仓库中分支指向的指定版本

git reset --hard HEAD~3

这里都用HEAD指向当前仓库的版本

git log [filename]查看单个文件可回滚的版本。

再来讲下Git的工作流程——常用命令

git的工作流程一般是这样的:

1、在工作目录中添加、修改文件;git add files

2、将需要进行版本管理的文件放入暂存区域;git commit

3、将暂存区域的文件提交到git仓库 git push

因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

文件添加至暂存区 git add

文件从暂存区提交到本地版本库当中 git commit [file name]-m ‘msg’

当把一个新的文件通过git add [file-name]命令时,他会将本地workspace中的文件给添加到暂存区(stage)当中,而此时其状态是由Untracked转换为staged(暂存状态),随后其git status时可以发现其是需要进行从stage提交到本地版本库当中的 所以经过git commit [file-name] -m 'updateMsg'来使其进入了本地的版本库中,而此时的文件变为Unmodify状态。

所有历史记录都无一幸免 git reflog

查看所有的提交历史记录 git reflog

只要是对当前本地版本库进行过任何修改迭代的版本都会在这个里面显示,包括回滚记录也会显示(以及对应的分支)。

[root@alascanfu ~]# git reflog
cfd37d4 HEAD@{0}: commit: Second-version
a65df0c HEAD@{1}: commit (initial): First-version

git 的并行操作——分支操作

用来查看当前所有分支中所处于哪条分支当中

git branch

创建并且立即切换分支

git checkout -branch [branch-name]

[root@alascanfu ~]# git branch
* master

[root@alascanfu ~]# git checkout -b slave
Switched to a new branch 'slave'
[root@alascanfu ~]# git branch
  master
* slave

[root@alascanfu ~]# git checkout master
Switched to branch 'master'
[root@alascanfu ~]# git branch
* master
  slave

git branch [branchName]branchName 必须是新的分支才能进行切换.

git checkout [branchName]是直接进行分支切换.

多作用的git checkout

git checkout [branchname]在多分支中的作用是可以切换回之前已经存在过的分支继续执行当前分支的操作。

git checkouy的作用是检出,如果对文件状态来进行操作时,会放弃对文件的缓存区操作,但是需要重新reset进行操作。

分支合并 ——完全形态 git merge

当多个分支完成当前自己分支所需要做的事情之后,要把分支与主干进行更新操作,务必是保证当前分支已经稳定的完成当前分支所需要做的事情,那么此时执行git merge [branchName]就可以了。

如果我们在分支slave中新建了helloSlave.txt文件

然后进行切换分支并且将其合并

[root@alascanfu ~]# touch helloSlave.txt
[root@alascanfu ~]# git branch
  master
* slave
[root@alascanfu ~]# git checkout master
Switched to branch 'master'
[root@alascanfu ~]# git status helloSlave.txt
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	helloSlave.txt
nothing added to commit but untracked files present (use "git add" to track)
[root@alascanfu ~]# git merge slave
Already up-to-date.
[root@alascanfu ~]# git status helloSlave.txt
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	helloSlave.txt
nothing added to commit but untracked files present (use "git add" to track)

就可能会出现 疑问 ? 当前你在任意分支中创建文件,并没有添加到暂存区,也没有提交到本地本本库,那么在整个版本库当中都是可见的,就好比你在Slave这条分支上创建好了一个新的文件但是既没有git add又没有git commit,此时你切换回主分支,那么这个文件依旧存在,因为你创建的文件在工作目录当中,你切换本地时git只会更新有关的文件,而无关的文件还是放在工作区。

开发中分支应用——多人协作开发

开发之中,当多个小伙共同开发一个项目的时候,不管进行何种更新操作时,都要采用分支开发,因为master只有一个,每个人都可以从master中获取代码,拉去之后创建自己此次修改的分支,分支言简意赅,见名知意。

所以如果当项目出现严重错误的时候就可以从master中拉去上个版本就可以解决对应出现的错误了。

Git操作Github/Gitee

在本地需要首先生成ssh的公钥来进行与github进行ssh服务通信,以便免密登录。

[root@alascanfu ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): HHXF
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Passphrases do not match.  Try again.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in HHXF.
Your public key has been saved in HHXF.pub.
The key fingerprint is:
SHA256:MRgw85***********qtZnQItMd426hOFwQXtsLTbSGe9H+U root@alascanfu
The key's randomart image is:
+---[RSA 2048]----+
|..+.+..          |
| = . + o         |
|+ B = o o        |
|.O.* * o +       |
|+.X+. B S        |
| *o=.= + E       |
| .= + o .        |
|.= .   .         |
|o..              |

-t 指定密钥类型
-f 指定密钥文件存储文件名 一般默认会存储在.ssh目录下

它会要求输入Enter file in which to save the key (/root/.ssh/id_rsa)

这里是生成的sshkey文件名,我们可以回车使用默认文件名

除此之外还会让你输入
Enter passphrase (empty for no passphrase):
这个密码会在让你push提交时候要输入的,除了git登录密码,还要输入这个密码,直接回车则空密码,这里我们直接回车

接着会让你在此输入密码,验证这里依旧回车

Enter same passphrase again:

对应生成如下两个文件
在这里插入图片描述
.pub 为结尾的就是你的公钥 你打开把它复制到你的SSH - KEYS/ADD NEWS中就可以了。
在这里插入图片描述在这里插入图片描述

新建远程仓库如图所示进行相应的配置

创建好远程仓库就可以进行咱们的git相关操作了。
在这里插入图片描述在这里插入图片描述

获取对应的项目地址然后就可以把远程仓库的数据复制下来了

[root@alascanfu studygit]# git clone https://github.com/HHXiaoFu/GitStudy.git
Cloning into 'GitStudy'...
## 然后就会克隆远程项目到本地工作目录当中啦~

github将本地版本库关联到远程仓库 git remote add origin

当我们想把我们自己本地的项目的版本推送到远程版本库当中的时候

我们就需要执行git remote add origin这个命令

origin 是github上的远程仓库意思

首先找到SSH对应的远程仓库连接
在这里插入图片描述

先进行远程关联将本地版本库与远程版本库进行关联

$ git remote add origin git@github.com:HHXiaoFu/GitStudy.git

然后使用git push 推送到远程仓库

$ git push -u origin master

git 将远程仓库关联到本地版本库中

此时我们直接远程clone远程仓库

[root@alascanfu studygit]# git clone git@github.com:HHXiaoFu/GitStudy.git
Cloning into 'GitStudy'...
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (5/5), done.
Receiving objects: 100% (6/6), done.
remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0

此处不用在本地git init因为clone 会自动帮我们初始化这个的。

默认会给我们拉取的是main分支

当然我们也可以通过git clone -b分支名来拉取指定分支

[root@alascanfu studygit]# git branch
* main

github 将本地仓库数据提交到远程仓库

#当git add、git commit -m 之后
# git push -u orgin master
# 可能会报错
error: src refspec master does not match any
error: failed to push some refs to 'github.com:HHXiaoFu/GitStudy.git'

#git push <remote 名字> <本地分支的名字> : <远程库的名字>
git push origin HEAD:master !!! 可用
#git push <remote 名字> <本地分支的名字>  省略远程分支
git push origin master
#git push <remote 名字>  : <远程库的名字> 省略本地分支
git push origin :master
#git push  全部省略
git push

git 的push 方法 如上图 依次进行测试。

工作中常用的保存当前更新操作 切换分支:git stash

## 保存当前工作 再去切换分支 否则可能导致之前的修改被清除
[root@alascanfu studygit]# git stash
No local changes to save
## 展示当前存储的工作状态
[root@alascanfu studygit]# git stash list

当你保存过后就可以 切换分支进行工作了。

当当前分支做完事情提交之后可以通过命令git stash pop切换回刚刚的分支,然后在刚刚的分支中恢复状态。

就好比,我们做着做着项目,突然隔壁的项目经理喊我们紧急修改需求,这就不得不启动其他的分支进行操作,但是手里的事情还没有完成,那我们就可以先保存当前状态再去拉取另一个分支完成任务,之后在回来继续上条分支干活。

$ git stash pop    # 会将stash list保存的列表也给删除掉

$ git stash apply # 不会删除列表里的内容会默认恢复第一个

# 如果想恢复```指定```内容可以使用git stash apply list名称
$ git stash drop # list名称可以移除指定list

$ git stash clear # 移除所有lsit

$ git stash show # 查看栈中最新保存的stash和当前目录的差异。

准确来说,这个命令的作用就是为了解决git不提交代码不能切换分支的问题。

将远程仓库中分支修改合并分支到本地仓库

git cherry-pick

$ git cherry-pick origin
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

   git commit --allow-empty

Otherwise, please use 'git cherry-pick --skip'
On branch slave
You are currently cherry-picking commit e4650d3.
 (all conflicts fixed: run "git cherry-pick --continue")
 (use "git cherry-pick --skip" to skip this patch)
 (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes not staged for commit:
 (use "git add/rm <file>..." to update what will be committed)
 (use "git restore <file>..." to discard changes in working directory)
       deleted:    test.txt

no changes added to commit (use "git add" and/or "git commit -a")

用来匹配当前分支中与远程仓库中的主分支有什么区别进行提示。

当你在github上删除了分支后本地 依旧能看到 被删除的分支

$ git remote show origin

用来查看github上目前的分支情况,如果分支被删除 需要使用参数prume来刷新本地版本库。

$ git remote prume origin

拉取所有分支、或者拉取到指定的分支

# 拉取所有的分支
$ git fetch 
# 拉取指定分支的内容
$ git fetch branchName

git删除分支

git branch -D [branchName]这个是删除本地的分支

如果要删除远程仓库的分支还需要进行操作

git push origin :branchName

#帝白灬黎墨@DESKTOP-85NIFSS MINGW64 /h/Git/studygit/GitStudy (main)
$ git push origin :slave
To github.com:HHXiaoFu/GitStudy.git
 - [deleted]         slave

#帝白灬黎墨@DESKTOP-85NIFSS MINGW64 /h/Git/studygit/GitStudy (main)
$ git branch -r
  origin/HEAD -> origin/main
  origin/main
  origin/master

强制删除分支

帝白灬黎墨@DESKTOP-85NIFSS MINGW64 /h/Git/studygit/GitStudy (main)
$ git branch -D slave
Deleted branch slave (was 1920702).

帝白灬黎墨@DESKTOP-85NIFSS MINGW64 /h/Git/studygit/GitStudy (main)
$ git branch
* main

查看不同的分支当中指定文件的差异

git diff

git在实际中分支开发的步骤与方法

我们在开发的时候不要去直接修改master分支

1、拉取一个分支下来,分支名简明扼要,见名知意

2、然后在当前分支,进行相应的数据更新,数据修改等操作

3、然后合并分支 之后删除分支。

操作步骤大体如下:
在这里插入图片描述
1、首先在github上创建好一个远程仓库用来进行相应的git操作。

2、随后打开本地的版本库位置打开git bash 窗口。进行如下操作:
在这里插入图片描述
1)复制好对应的SSH链接,通过git clone将远程仓库克隆到本地(可以这样做的前提是必须要先将生成好的SSH公钥添加到对应Github设置中的SSH key中,前面提到过这里就不再陈述)。

$ git clone git@github.com:HHXiaoFu/GitStudy.git
Cloning into 'GitStudy'...
remote: Enumerating objects: 38, done.
remote: Counting objects: 100% (38/38), done.
remote: Compressing objects: 100% (24/24), done.
remote: Total 38 (delta 18), reused 26 (delta 11), pack-reused 0
Receiving objects: 100% (38/38), 4.37 KiB | 72.00 KiB/s, done.
Resolving deltas: 100% (18/18), done.

2)随后你就会在对应的工作目录中看到克隆下来的远程仓库

cd GitStudy进入本地仓库 进行git操作。
在这里插入图片描述
此时在目录右侧会出现你当前所处于的分支为(main)

3)根据工作流程 咱们需要不修改原分支的前提下 进行数据更新修改等操作,那咱们就来创建另一条分支来进行,见名知意,言简意赅的起名字 会让你工作更加顺利。如图显示:
在这里插入图片描述
此时 我们通过git branch branchname来创建分支,然后通过git checkout branchname来进入分支。

4)然后我们来进行 模拟生产环境 中 新建一个文件并且对其进行修改 操作步骤 如图所示:
在这里插入图片描述
此时来查看当前本地仓库中所有的文件状态:在这里插入图片描述
你会发现此时本地仓库中出现了一个处于Untracked状态的文件,所以我们需要将其 先通过git add添加到暂存区、然后再通过git commit -a -m "msg"来将其从暂存区提交到本地版本库当中,操作如图:
在这里插入图片描述
注意此时 我们所处分支 是我们自己创建出来的分支 而非远程仓库中的主分支。

此时我们可以通过 git branch -a来查看所有的分支

通过 git branch -r来查看github上存在的分支

如图:
在这里插入图片描述
所以我们知道此时远程仓库并没有我们当前分支的数据:

我们就需要进行push 提交当前分支的数据从本地版本库到远程仓库具体操作如下:

git push origin HEAD:updateFileData

这步会将你当前分支所做的修改上传到远程仓库当中,同时远程仓库中也会生成新的一条叫做updateFileData的分支。
在这里插入图片描述
所以在此时此刻,远程仓库github中就进行了相应的数据更新,在你对应的分支上已经进行了相关的操作以及提交,所以你就可以看到如图:
在这里插入图片描述
我们的application.yaml已经被更新到updateFileData这条分支当中。

5)当我们对分支的所有操作都操作完毕之后,我们就该将这条分支合并到远程仓库的main分支当中了,操作如图所示:
在这里插入图片描述
首先我们进行了分支切换,切回到主分支,随后将分支updateFileData合并到了主分支当中。

此时 我们还需要再将本地仓库的数据push到远程仓库:
在这里插入图片描述
如图所示我们已经成功完成了数据修改、分支合并 、也没有对之前的主分支进行额外的操作。大功告成? 不 ,因为此时你的分支操作进行了合并,但是远程仓库与本地仓库中都还有这条分支的记录,所以最后一定要记住不要忘记把这条多出来的分支删除掉。

git branch -d branchname删除本地的分支

git push origin :branchname删除远程仓库中的分支

操作如图:
在这里插入图片描述
大功告成!这就是 最基础的git的相关操作 与 开发中的相关步骤,更多的话就是结合idea来进行项目测试,在idea中一样可以使用bash来进行操作,此处不再赘述。

感谢

非常感谢

17岁boy想当攻城狮

博文《关于Git这一篇就够了》:链接地址。

给了作者很多的启发与帮助 以及 他总结归纳的git常用操作

同时 也感谢 正在阅读此篇博文的你

学无止境 每天学一点 每天收获一点

博主在这里 祝愿 诸君能 事业有成 学有所得

写在最后

最后本文共计2w7k字

希望读者们慢慢食用

加油!致敬成长道路上的你和我~

如果可以 请记得 动动小手 一键三连

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alascanfu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值