Git学习笔记

本文详细介绍了如何使用Git进行仓库创建、配置账户、添加和提交代码、创建分支、合并分支以及处理更复杂的rebase操作,包括解决合并冲突的基本步骤。
摘要由CSDN通过智能技术生成

1 Git快速使用

1.1 创建git仓库

打开Git Bash,输入下面的指令,可以快速创建一个git仓库:

mkdir git-test // 创建一个新的文件夹git-test
git init // 初始化一个git仓库

上图是初始化一个git仓库的过程。

1.2 配置git账户

使用下面指令配置git账户

git config --global user.email "you email"

1.3 编写代码

根据下面的指令创建一个新的文件readme.md,然后编辑readme.md文件,并使用git status查看状态。

touch readme.md // 创建一个新文件readme.md
git status // 会报错:没有把readme.md文件添加至暂存区
git add readme.md // 将readme.md文件加入暂存区
git status // 不报错:这个时候会告知readme.md是新加入的文件

上图是我整个操作的过程截图。

1.4 提交更改至本地仓库

很明显,使用git commit 指令可以提交代码至本地仓库,下面是指令与操作过程:

git commit -m "add a new file readme.md" // 提交代码
git log // 查看历史提交信息

1.5 加入C++代码

这一步我将创建创建一个新的cpp文件,并将其提交到主分支master中去:

touch main.cpp
git commit -m "add a new cpp file main.cpp"

main.cpp里面的代码如下图所示:

1.6 创建新的分支

有的时候我们需要加入一些测试性的新特性,但是不想在主分支上进行修改,因此我们可以创建新的分支。

git checkout -b feature/new-variable // 创建一个新的分支

该指令会创建一个名为feature/new-variable的新分支,并且跳转到这个分支上去,我们可以在这个新分支上面加入我们需要的代码:

int a = 10;

加入上面代码后,我们同样需要将它加入暂存区,之后再提交至本地仓库,可以使用git log 查看该分支的提交日志。

切换回主分支,查看主分支的提交信息,看看有什么不同的地方:

可以看到,相比新的分支而言,主分支master少了一次提交信息,这就是创建新分支的特点。

1.7  合并新的分支

一般而言,没有被合并的分支是不能被删除的,这是git的一种保护机制。例如对我们刚刚创建的新分支feature/new-variable进行删除操作会得到下面的结果:

git branch -d feature/new-variable // 删除名为feature/new-variable的分支

上面图片中的结果告诉我们,feature/new-variable分支没有被合并,如果非得删除它的话,可以将指令中的d改成D。

使用下面指令可以将feature/new-variable分支合并到主分支上面去,并且我们可以看到主分支多了一个新的提交日志:

git merge feature/new-variable

合并好这个分支后,我们再次尝试一下删除这个分支,这个时候可以成功删除了:

git branch // 查看分支信息
git branch -d feature/new-variable
git branch // 再次查看分支信息,可以发现分支feature/new-variable已被删除

1.8 更高级的合并

1.7中的合并它是一种比较简单的合并,因为它们都有相同的父版本,直接把子分支的内容合并到主分支即可,下面我们将合并的情况是,不但子分支进行了修改,而且主分支也有修改。

首先我们将创建一个新的分支bugFix/new-bug,然后我在这个分支上加入新的代码(包含bug)。

git checkout -b bugFix/new-bug

这种合并情况下,需要多一次的提交,我们可以输入指令git log查看提交信息,如下图:

1.9 变基(rebasing)

这里我们将用到的指令是git rebase,它可以将之前没有的提交加入到当前分支中去。下面将演示一下使用rebase指令的例子:

这里我将之前的bugFix/new-bug分支删除了,然后新建了一个分支bugFix/fix-bug。我们先使用git log 看一下这两个分支的提交情况。

这是主分支master的提交情况:

这是分支bugFix/fix-bug的提交情况:

下面我们在bugFix/fix-bug下面使用rebase指令,看看会发生什么事情:

git rebase master

从上面的图中我们可以看到,这个指令将master中特有的提交add a new line on readme.md加入到当前分支bugFix/fix-bug中来了。这个时候其实bugFix/fix-bug和master这两个分支已经有了共同的父版本,所以我们这个时候切换到master中去,并将bugFix/fix-bug合并到主分支中去:

git checkout master
git merge bugFix/fix-bug

可以看到,这次合并不像1.8那样,会多一次合并提交情况了。

1.10 解决合并冲突

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值