git创建分支以及删除分支相关操作说明和注意点

我的理解

刚接触git分支概念,我觉得和master主分支很混,不知道master主分支,其他分支,idea,本地仓库,远程仓库这几个概念的区别,也不知道创建分支,切换分支,删除本地分支,删除远程分支,这几个操作的联系。经过我踩过几个大坑,现在我将我理解的阐述如下:

1

首先我们想象一棵树,master是树的一根枝干,我们一般在master上操作,即创建本地仓库,提交代码到本地仓库,关联到远程仓库,等等,我们新建一个文件夹,右键点开git bash here出现的git命令行界面,即可看见一开始默认的就是master.
git创建分支以及删除分支相关操作说明和注意点然后我们正常进行我们提交代码的一系列操作。然后我们需要创建git分支,这就好比是在这棵树上另一根分支,我们要在这个分支上提交代码。

2

所以我们需要先创建新分支。
##创建新分支的命令行:
git checkout -b 314change 创建新分支并切换到新分支
git checkout 314change 切换到已经存在的新分支

然后我们可以在idea中看到,虽然代码没有变换,但这已经是一个新的分支git创建分支以及删除分支相关操作说明和注意点
这就表明idea关联的是git的314分支,点开可以看到有两个分支
git创建分支以及删除分支相关操作说明和注意点为什么idea会关联到git,git上切换分支会使idea也切换分支,是因为在我们在master主分支上提交代码的时候有输入一下命令行
##git remote add origin [email protected]:xxxx/xxxxxxx.git
这就将本地仓库和git远程仓库关联起来了,本地仓库就是当前d盘文件夹,而我们又是以d盘文件夹建立了idea的project,所以我们在文件夹上打开git bash,进行切换的时候,d盘的文件夹里的东西和idea界面都会变,因为现在我们刚刚切换过来,还没有在新分支上有任何改动,所以你不会察觉到转换分支的区别,但现在你就可以在idea里修改代码了,完全不用担心这里的修改会影响你刚刚提交的master主分支上的代码,因为两个分支如同树的两个枝干,是不会互相影响的,你想要在原来的分支上做任何改动使用如下命令行切换即可
##git checkout 314change
##git checkout master

3

当我们修改好代码,提交分支时,需要确保你目前所在的分支是314change分支即时你所新创建的新分支。千万不要在master分支上去提交代码到314change,这就好比是站在master树干上往314树干扔东西,可是这两个树枝是没有联通的,如果这样做了,那就会出现314分支上可以出现新加入的文件,但原本就有且做了修改的文件是和master主分支上一致没有提交成功任何修改。至于原因我不知道,但这样的骚操作我也不会再做了。。。当我们已经切换好分支,就可以提交了,提交的语句和master类似
##git add .
##git commit -m “代码提交说明”
##git push -u origin 314change
然后查看git看是否提交成功
git创建分支以及删除分支相关操作说明和注意点
git创建分支以及删除分支相关操作说明和注意点
可以看见有两个分支了,我们可以点开分别查看这两个分支,因为我们的修改我们可以很好的看到两个分支的不同
git创建分支以及删除分支相关操作说明和注意点
git创建分支以及删除分支相关操作说明和注意点
我们可以通过提交代码的代码说明看出这是我们两次不同的提交,自此我们有关的分支操作成功。

4

我补充一点的是关于删除分支,在网上的查阅资料我知道要彻底删除分支需要删除本地分支也要删除远程分支
##删除本地分支
##git branch -d 314change
##删除远程分支
##git push origin --delete bug_xzx
但是切记,远程分支可以删除了重新创建,但本地分支不要随意删除,因为正如我前面所说本地分支里是连接了idea,删除了本地分支,那么idea中你修改的代码就会全部没有,如果你还没有提交的话那就真的是叫天天不灵,叫地地不应。
最后再分享几个git关于分支的命令行
##查看当前所在分支
##git branch
##查看所有在分支
##git branch -a

5总结

学习到这里我对git分支的体会就是为什么我们需要在简简单单的本地文件弄个分支,我们完全可以新建两个文件分别建立idea的project,分别关联到git上提交代码嘛,我认为是这是一种更方便更有利于管理我们代码文件,更有利于节省资源的版本控制系统。
我们本来需要两个文件夹,但现在可以通过分支切换使一个文件夹呈现两种面孔,我们在两个版本的文件夹里做修改,使得有联系的两个代码不是单独存在而是在一个project下,只是是两个版本,这样是更高效的一种管理方式。