Git——分支详解

git创建分支,提交代码详细流程(保姆级) 其实最基本的流程就是新建分支,在这个分支上改动代码,再提交上去,跟master分支合并。 1. 新建分支 首先,在你新建分支之前,你应该在master分支,并且要保证你当前的是最新代码,要不然就是找死,最后提交代码就会出问题。 git pull origin master ,在master分支下,保证当前代码与线上同步,是最新的 git branch <分支名> ,正儿八经的新建... 阅读详情
AI摘要

本文详细介绍了Git分支的使用、原理及合并等内容。包括新增、更改、删除和切换分支的操作,阐述了分支原理,如单个和多个分支的逻辑。还讲解了合并分支的示例、区别,以及处理未合并分支删除恢复、Rebase合并、合并冲突等问题,最后介绍从过去Commit创建分支的方法。

Git分支

1、开始使用分支

在Git中使用分支很简单,只要使用git branch命令即可:

git branch

在这里插入图片描述

如果git branch后面没有接任何参数,它仅会输出当前在这个项目中有哪些分支。Git默认会设置一个名为master的分支,前面的星号(*)表示现在正在这个分支上。

1.1、新增分支

要增加一个分支,可在执行git branch命令时,在后面加上想要的分支的名称:

git branch cat

这样就新增了一个cat分支。再查看一下:

git branch

在这里插入图片描述

可以看出,的确多了一个分支,但当前分支还是在master上。

1.2、更改分支名称

如果觉得分支名取得不够响亮,可以随时更改,而且不会影响文件或目录。假设现在的分支有3个:

git branch

在这里插入图片描述

如果把cat分支改成tiger分支,使用的是-m参数:

git branch -m cat tiger

看一下当前的分支:

git branch

在这里插入图片描述

即使是master分支也可以改,如把master改成slave:

git branch -m master slave

1.3、删除分支

当前共有3个分支,如果其中的dog分支不需要了,可以使用-d参数来删除:

git branch -d dog

在这里插入图片描述

如果要删除的分支还没有被完全合并,Git会有贴心小提示:

git branch -d tiger

在这里插入图片描述

因为tiger的内容还没有被合并,所以使用-d参数无法将其删除。这时只需改用-D参数即可将其强制删除:

git branch -D tiger

在Git中什么分支都可以删,包括默认的master分支(master只是默认的分支,并没有其他特别之处)。如果非要说哪个分支是不能删的,只有“当前所在的分支”不能删,不过只要先切换到其他分支就可以将其删除。

摘录来自: 高见龙. “Git从入门到精通。” Apple Books.

1.4、切换分支

要切换分支,就是git checkout:

git checkout tiger

看一下当前的分支状态:

git branch

在这里插入图片描述

可以看到,前面的那个星号已经移到tiger分支上了。

1.5、切换分支时

例如,上文已经切换到tiger分支,然后新增tiger1.txt和tiger2.txt文件,并Commit:

echo "tiger1" > tiger1.txt
echo "tiger2" > tiger2.txt
git add .
git commit tiger1.txt -m "add tiger1"
git commit tiger2.txt -m "add tiger2"

查看一下Git记录:

git log --oneline 

在这里插入图片描述

可以看出,tiger分支的确比master分支多前进了两次Commit。

再看一下文件列表:

ls -al

在这里插入图片描述

这时如果切换回原本的master分支:

git checkout master

再看一下文件列表:
在这里插入图片描述

刚才那两个文件不见了!别担心,其实它们都还在,只是在不同的分支而已,只要切换回cat分支,文件就会出现了。

1.6、要切换到哪个分支,首先要有那个分支

如果要切换到某个分支,这个分支必须要先存在,不然会发生错误:

在这里插入图片描述

如果没有这个分支,只要在给git checkout分支命名的时候加上-b参数就没问题了。如果这个分支本来就存在,Git就会直接切换过去;如果不存在,Git就会帮你创建一个,然后再切换过去:

git checkout -b aaa

在这里插入图片描述

2、分支原理

2.1、单个分支

可以把分支想象成一张贴纸,贴在某一个Commit上面:
在这里插入图片描述

当做了一次新的Commit之后,这个新的Commit会指向它的前一个Commit:

在这里插入图片描述

而接下来“当前的分支”,也就是HEAD所指的这个分支,会贴到刚刚做的那个Commit上,同时HEAD也会跟着前进:

在这里插入图片描述

2.2、多个分支

如果一个分支不够说明,那就来两个。通过git branch cat命令创建一个新的分支。它就像一张贴纸,与master贴在同一个地方:

在这里插入图片描述

接下来执行git checkout cat命令,切换到cat分支。此时,HEAD转而指向cat分支,表示它是“当前的分支”:
在这里插入图片描述

接着进行一次新的Commit,这个新的Commit会指向前一次Commit:

在这里插入图片描述

然后,cat分支上的“贴纸”就会被撕下来,转而贴到最新的那个Commit上;当然HEAD也是一样:

在这里插入图片描述

2.3、切换分支时的逻辑

Git在切换分支时主要做了以下两件事:

1、更新暂存区和工作目录

Git在切换分支时,会用该分支指向的那个Commit的内容来“更新”暂存区(Staging Area)及工作目录(Working Directory)。但在切换分支之前所做的改动则会留在工作目录中,不受影响。

这段话有点难理解,先来看看前半段的意思。假设原本正处于cat分支,执行下面的命令后,就会由cat分支切换到master分支:

git checkout master

接下来,Git会用master分支指向的那个Commit的内容来更新暂存区及工作目录。因为master此时指向的Commit并没有cat1.html和cat2.html这两个文件,所以“更新”之后,不管在暂存区还是在工作目录中都不会有这两个文件。同理,再次切换回cat分支时:

git checkout cat

Git会用cat分支指向的那个Commit的内容来“更新”暂存区及工作目录,所以这两个文件就又出现了。

在Git的世界中,每一次的Commit都是一个对象,它会指向某一个Tree对象(目录),而这些Tree对象会指向其他的Tree对象(子目录)或Blob对象(文件)。这种结构有点像葡萄。只要伸手把源头的Commit对象拎起来,整串内容都可以被拿出来。

2、变更HEAD的位置

除了更新暂存区及工作目录的内容外,HEAD也会指向刚刚切换过去的那个分支,也就是说,.git/HEAD文件会一起被改动。

2.4、如果将文件改动了一半就切换分支

假设现在还在cat分支,在切换到master分支之前,新增了一个cat3.html文件,同时也改动了index.html文件的内容,这时的状态如下:

在这里插入图片描述

当前index.html是modified状态,而cat3.html是Untracked状态。如果这时就直接切换到master分支,也就是还没Commit就切换分支,会发生什么事?

前文提到过,“Git在切换分支时,会用该分支指向的那个Commit的内容来‘更新’暂存区(Staging Area)及工作目录(Working Directory)。但在切换分支之前所做的改动则会留在工作目录中,不受影响”。其中“在切换分支之前所做的改动则会留在工作目录中,不受影响”说的就是这件事。直接操作看看:

git checkout master

在这里插入图片描述

查看一下文件列表:
在这里插入图片描述

可以看到,刚刚新增的cat3.html文件还在。再看一下Git的状态:

在这里插入图片描述

可以看到,Git的状态与刚刚在cat分支时的状态是一样的,也就是说,切换分支并不会影响已经在工作目录中的那些改动。

3、合并分支

3.1、合并示例

在前面的例子中,从master分支开了一个cat分支,随后修改了index.html和新增了cat3.html文件,我们进行两次Commit,现在大概是这个样子:

在这里插入图片描述

在这里插入图片描述

任务执行得差不多了,就要准备合并回来了。如果想要用master分支来合并cat分支,就要先切换回master分支:

git checkout master

接下来,使用git merge命令合并分支:

git merge cat

在这里插入图片描述

查看一下文件列表:
在这里插入图片描述
因为master现在已经合并了cat分支,所以在cat分支新增的cat3.html文件在master分支也出现了。

3.2、A合并B与B合并A区别

在此假设从master分支创建了cat和dog两个分支,并且当前正在cat分支:

在这里插入图片描述

cat分支与dog分支都是来自master分支,所以不管master是要合并cat分支还是dog分支,Git都会直接使用快转模式(Fast Forward)进行合并,也就是master直接“收割”cat或dog的成果。

但如果是cat与dog这两个分支要互相合并就不一样了,虽然它们有同样的来源,但要合并就不会这么顺利了。在这种情况下,Git会生成一个额外的Commit来处理这件事。一般的Commit只会指向某一个Commit,但这个Commit会指向两个Commit,明确地标记是来自哪两个分支。

来看看会怎么演变。假设想用cat分支来合并dog分支,可用如下命令:

git merge dog

执行这个命令时会弹出一个Vim编辑器窗口,为了进行这次合并,Git做出了这个额外的Commit对象,这个Commit会分别指向cat分支和dog分支,HEAD随着cat分支往前,而dog分支停留在原地:

在这里插入图片描述

如果改由dog分支来合并cat分支,则使用如下命令:

git merge cat

程序上与刚才几乎是一样的。这时的状态如图:

在这里插入图片描述

其实就结果来看,不管是谁合并谁,这两个分支的文件最后都得到了。

事实上不管是谁合并谁,这两个分支上的Commit都是对等的。如果非要说哪里不一样,就是cat分支合并dog分支时,cat分支会往前移动,反之亦然。不过前面提到过,分支就像贴纸一样,删除或改名都不会影响现在已经存在的Commit。

不一样的地方还有一处,就是这个为了合并而生成的额外的Commit对象,里面会记录两个“老爸”,谁合并谁就会有“谁在前面”的区别,不过这就有点太过细节了。

3.3、合并过的分支要保留吗

结论:都可以,看自己的需要。

基本上,分支就是一个只有40字节的文件而已。这个分支,也就是这40个字节,会标记出它当前指向哪一个Commit。不管是上节提到的快转模式(Fast Forward)还是非快转模式,只要该分支被合并过,就代表“这些内容本来只有你有,现在我也有了”。

既然合并后,原本没有的内容都有了,而分支本身又像一张贴纸一样“地位低微”,那么它也就没有利用价值了。所以,合并过的分支想删就删吧。删除分支就只是把一张贴纸撕下来而已,原来被这张贴纸贴着的东西并不会因此而不见。

当然,没有被合并过的分支就是另一回事了。回到原来的问题——合并过的分支要留着吗?都可以,如果想要删掉,或者已经和这个分支建立“感情”了,想留着做纪念也可以。

4、不小心把还没合并的分支删除了,救得回来吗

4.1、恢复已被删除的还没合并过的分支

合并过的分支想留就留、想删就删,Git的分支并不是复制文件到某个目录,所以不会因为删掉分支文件就不见了。

但如果删除的是还未合并的分支就不一样了。先想象一下这个画面:

在这里插入图片描述

cat分支是从master分支出去的,当前领先master分支两次Commit,而且还没有合并过。这时如果试着删掉cat分支,它会提醒:“这个分支还没全部合并哦”。

$ git branch -d cat 
error: The branch 'cat' is not fully merged. If you are sure you want to delete it, run 'git branch -D cat'.

虽然Git这么贴心地提醒了,但这里仍然把它删除了:

$ git branch -D cat 
Deleted branch cat (was b174a5a).

这时的关联图如图:
在这里插入图片描述

上面不是已经删除cat分支了吗,怎么还在?这里再次跟大家说明一下分支的概念:分支只是一个指向某个Commit的指标,删除这个指标并不会使那些Commit消失。

所以,删掉分支后那些Commit还在,只是因为你不知道或没有记下那些Commit的SHA-1值,所以不容易再拿来利用。原本领先master分支的那两个Commit现在就像空气一样,虽然看不到,但它们是存在的。既然存在,那就把它们“接回来”吧:

$ git branch new_cat b174a5a

这个命令是“请帮我创建一个叫作new_cat的分支,让它指向b174a5a这个Commit”,也就是再拿一张新的贴纸贴回去。看一下现在的分支:

$ git branch 
* master
new_cat

切换过去试试看:

$ git checkout new_cat 
Switched to branch 'new_cat'

确认一下文件列表,失去的文件都回来了。

4.2、还没有把刚刚删除的那个cat分支的SHA-1值记下来怎么办?查得到吗

可以用git reflog命令去查找,Reflog默认会保留30天,所以30天内还找得到。

4.3、其实所谓的“合并分支”,合并的并不是“分支”

如果你对Git分支的认识是正确的,就可以猜到下面这个命令在做什么:

$ git merge b174a5a 
Updating e12d8ef..b174a5a Fast-forward cat1.html | 0 cat2.html | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 cat1.html create mode 100644 cat2.html

这不是在合并分支时弹出来的信息吗?是的,所谓的“合并分支”,其实是合并“分支指向的那个Commit”。分支只是一张贴纸,它是没有办法被合并的,只是大家会用“合并分支”这个说法,毕竟它比“合并Commit”容易理解。

分支只是一个指向某个Commit的指向标。

5、使用Rebase合并

5.1、使用Rebase合并分支

准备环境:

git branch dog
git checkout dog
echo "dog1" > dog1.txt
echo "dog2" > dog2.txt
git add .
git commit dog1.txt -m "dog1"
git commit dog2.txt -m "dog2"

git branch cat
git checkout cat
echo "cat1" > cat1.txt
echo "cat2" > cat2.txt
git add .
git commit cat1.txt -m "cat1"
git commit cat2.txt -m "cat2"

状态如图:
在这里插入图片描述

在Git中还有一个命令叫作git rebase,也可以用来做与git merge命令类似的事情。从字面上来看,rebase是“re”加上“base”,其中文含义大致是重新定义分支的参考基准。

所谓“base”,就是指“这个分支是从哪里生成的”。以上面这个例子来说,cat与dog两个分支的base都是master。接着使用git rebase命令来“组合”cat和dog这两个分支:

git rebase dog

用通俗的话来说,上述命令的含义大致就是“我(即cat分支)现在要重新定义我的参考基准,并且将使用dog分支作为我新的参考基准”。

在这里插入图片描述

Rebase合并方式和一般的合并方式的一个很明显的区别,就是使用Rebase方式合并分支,Git不会做出一个专门用来合并的Commit。

5.2、Rebase原理

Rebase的过程大概是这样的:
在这里插入图片描述

  1. 先将c68537这个Commit接到053fb2这个Commit上。因为c68537的上一层Commit原本是e12d8e,现在要接到053fb2上,所以需要重新计算这个Commit的SHA-1值,重新做出一个新的Commit对象35bc96。
  2. 再拿b174a5这个Commit接到刚刚做出来的Commit对象35bc96上。同理,因为b174a5这个Commit要接到新的Commit上,所以它会重新计算SHA-1值,得到一个新的Commit对象28a76d。
  3. 最后,原本的cat是指向b174a5这个Commit的,现在转而指向最后做出来的那个新的Commit对象28a76d。
  4. HEAD还是继续指向cat分支。

5.3、原来Commit的去向

原本的那两个Commit(灰色),即c68537和b174a5的去向是哪里?

它们还是在Git的空间中占有一席之地,只是因为已经没有分支指着它们了,所以如果没有特别去记这两个Commit的SHA-1值,它们就会慢慢被边缘化。

但它们并没有马上被删除,只是默默地待在那里,直到有一天被Git的资源回收车拉走。

5.4、谁Rebase谁有区别吗

仅从最后的文件来说并没有什么区别,但就历史记录来说则有区别,谁Rebase谁,会造成历史记录的先后顺序不同。

5.5、取消Rebase

如果是一般的合并,只要git reset HEAD^ --hard一行命令,删除这个合并的Commit后,这些分支就会退回合并前的状态。但是,从上面的结果可知,Rebase并没有做出那个合并专用的Commit,而是整个都串在一起了,与一般的Commit差不多。所以这时如果执行git reset “HEAD^ --hard命令,只会删除最后一个Commit,但并不会回到Rebase前的状态。”

要想取消Rebase,可使用以下三种方式:

1、使用Reflog

其实Reflog会记录很多好用的东西。例如,刚刚把cat分支Rebase到了dog分支上,其状态就会是这样的:

在这里插入图片描述

查看一下现在的Reflog:
在这里插入图片描述

这个a9aa5bf (cat) HEAD@{5}: commit: cat2就是开始做Rebase前的最后动作,所以就是这个Commit了!下面使用Reset命令硬切回去:

git reset a9aa5bf --hard 

这样一来,就会回到Rebase前的状态了。

2、使用ORIG_HEAD

在Git中有另一个特别的记录点——ORIG_HEAD。ORIG_HEAD会记录“危险操作”之前HEAD的位置。例如,分支合并或Reset之类的都算是所谓的“危险操作”。通过这个记录点来取消这次Rebase相对来说更简单:

git rebase dog
git reset ORIG_HEAD --hard

在这里插入图片描述

实际也是回到a9aa5bf位置的Commit。

6、合并冲突

6.1、发生冲突

Git可以检查出简单的冲突,所以并不是改到同一个文件就一定会发生冲突,但改到同一行就会出现冲突。假设在cat分支改动了index.html文件的内容:

在这里插入图片描述

git add .
git commit index.html -m "cat branch update"

然后在dog分支也改动了index.html文件的内容:
在这里插入图片描述

git add .
git commit index.html -m "dog branch update"

这时进行合并,不管是一般的合并还是使用Rebase进行合并,都会出现冲突。下面先使用一般的合并:

git merge dog

在这里插入图片描述

这时Git发现那个index.html文件出现问题了。我们先看一下当前的状态:

在这里插入图片描述

因为index.html文件的两边都被改动了,所以Git把它标记成both modified状态。

6.2、解决冲突

查看index.html文件的内容:
在这里插入图片描述

Git把有冲突的段落标记出来了,上面是HEAD,也就是当前所在的cat分支,中间是分隔线,下面是dog分支的内容。

也就是说,<<<<<<< HEAD和=========之间的内容是当前cat分支的修改,===========和>>>>>>>>>> dog之间的内容是dog分支的修改。

这个问题看来是沟通不良造成的。要解决问题,就要把两边的人请过来讨论一下,看看到底该用谁的code。最后决定还是采纳cat分支的内容,顺便把那些标记修掉。最后内容如下:

在这里插入图片描述

改完后,切记把这个文件加回暂存区:

git add index.html

然后就可以Commit并完成这一回合了:

git commit -m "conflict fixed"

6.3、处理非文本文件的冲突

因为上面的index.html文件是文本文件,所以Git可以标记出发生冲突的点在哪里,用肉眼就能看得出来大概该怎样解决,但如果是图像文件之类的二进制文件该怎么办?例如,在cat分支和dog分支同时加了一张叫作cute_animal.jpg(可爱的动物)的图片,则合并时出现冲突的信息为:

$ git merge dog 
warning: Cannot merge binary files: cute_animal.jpg (HEAD vs. dog) Auto-merging cute_animal.jpg CONFLICT (add/add): Merge conflict in cute_animal.jpg Automatic merge failed; fix conflicts and then commit the result.

这时要把两边的人请过来,讨论到底谁才是最可爱的动物。最后决定猫才是最可爱的动物,所以决定用cat分支的文件:

git checkout --ours cute_animal.jpg

如果要用dog分支,则使用--theirs参数:

git checkout --theirs cute_animl.jpg

决定之后,像前面一样将内容加到暂存区,准备Commit,然后结束这一回合。

7、从过去某个Commit创建分支

历史记录如下:
在这里插入图片描述

要从add sql.的Commit(62fb48e)中再做出新的分支,首先要回到那个Commit的状态,这时使用的是git checkout命令:

git checkout 62fb48e

在这里插入图片描述

从这段信息中可以看出,当前正处于detached HEAD状态。可以从现在这个Commit开出新的分支。使用Checkout命令的-b参数直接创建分支并自动切换过去:

git checkout -b xxx

如果不想两步操作,也可以一行直接搞定:

git branch xxx 62fb48e

意思就是“请帮我在62fb48e这个Commit上开一个xxx分支”。

Git命令及分支操作 一、Git常用命令 命令名称 作用 git config --global user.name 用户名 设置用户签名 git config --global user.email 邮箱 设置用户签名 git init 初始化本地库 git status 查看本地库状态 git add 文件名 添加到暂存区 git commit -m "日志信息" 文件名 提交到本地库 git reflog 查看历史记录 git reset - 阅读详情

相关推荐

Git详细教程(五):查看分支、创建分支、合并分支

1.Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。理解和精通这一特性,你便会意识到 Git 是如此的强大而又独特,并且从此真正改变你的开发方式。2.Git保存的不是文件的变化或者差异,而是一系列不同时刻的快照。在进行提交操作时,Git 会保存一个提交对象(commit object)。

2401_83817916的博客 2245

Git——分支(详细解释)

从右向左看用户在生产分支上进行使用,程序员在开发分支上进行开发。 在master这个主线上运行,运行的同时要增加功能,那我们就可以把master赋值一份出来,在复制的地方进行开发,在开发完功能后就可以更新版本正常使用 当我们引入新功能有bug,就可以从master分支再引一个分支hot-fix(热修分支),对代码进行修改,修改后再合并到master

weixin_51351637的博客 2万+

Git详解之三 Git分支

【代码】Git详解之三 Git分支。

2501_90210016的博客 610

Git 分支详解

主分支(主干/主线/main/master)开发分支(集成分支/develop/dev)① 同时创建:仓库+分支② 已有仓库,再创建分支

书启鸿蒙知秋枫 1万+

Unity动画状态机实战:Trigger和Bool参数到底怎么选?附5个常见场景解析

本文深入解析Unity动画状态机中Trigger和Bool参数的核心差异与应用场景。通过对比两者在描述瞬时事件与持续状态上的本质区别,并结合角色移动、攻击连招、跳跃落地、受击死亡及环境交互等5个实战场景,提供了清晰的选择逻辑与避坑指南,帮助开发者构建更健壮、易维护的动画逻辑。

weixin_29009501的博客 121

ANSA二次开发在线帮助:ANSA和μETA API文档

  为了方便大家学习ANSA二次开发,我将ANSA和μETA二次开发的官方文档整合到了我的个人网站CAECoder中,大家点击ANSA和μETA API官方帮助文档进行访问即可查看。   本站也将开展对ANSA和μETA API文档的翻译工作,请大家持续关注! ANSA和μETA API文档   ANSA和μETA脚本接口是一个应用程序编程接口(API),允许开发人员访问ANSA和μETA核心功能和数据。   ANSA和μETAAPI是Python编程语言的扩展。 Python Python简.

CAECoder 4322

git分支branch详解

上一篇git的基本原理http://blog.youkuaiyun.com/xiaoputao0903/article/details/23912561,介绍了git最基本的原理和相关操作,这篇就来讲讲git的分支。 1.git的分支是什么         顾名思义,分支就是从主线上分离出来进行另外的操作,而又不影响主线,主线又可以继续干它的事,是不是有点像线程,最后分支做完事后合并到主线上而分支的任务完

雨中奔跑 2万+

VisDrone2019数据集实战:从下载到YOLO格式转换的完整指南

本文提供了一份完整的VisDrone2019数据集实战指南,详细介绍了从数据集下载、理解其独特的标注格式,到转换为YOLO模型可直接训练格式的全过程。通过清晰的代码示例和步骤讲解,帮助读者掌握处理复杂无人机视觉数据集的核心技能,为基于YOLO的目标检测模型训练做好准备。

weixin_29165725的博客 385

git分支详解

git分支 git有一个中心仓库,库中有一个产品A的设计图纸,这个就是master。

weixin_43660088的博客 2万+

OpenEvidence DeepConsult深度分析:技术架构、临床应用与行业影响

摘要:医疗AI平台OpenEvidence通过多智能体协作系统重构临床决策流程,解决了医学信息过载难题。其DeepConsult系统严格基于同行评审文献,5-10秒内提供循证决策支持,已覆盖40%美国医生,月咨询量达850万次。该平台采用"免费工具+广告变现"模式,通过调度、检索、摘要等模块化智能体分工,实现从文献分析到临床建议的闭环处理,在USMLE测试中准确率达90%。2025年获7500万美元融资后估值突破10亿美元,成为医疗AI领域的新范式。

AllenLV的博客 2556

YOLOv11改进策略【模型轻量化】| 替换华为的极简主义骨干网络:VanillaNet

本文记录的是基于VanillaNet的YOLOv11轻量化改进方法研究。VanillaNet的极简主义在于无 shortcut 连接,并且在网络的每个阶段仅使用一层卷积,无额外复杂模块,仅通过自身简洁的架构设计和训练策略,实现有效地训练和优化。本文在替换骨干网络中配置了原论文中的、和11种模型,以满足不同的需求。

Limiiiing的博客 1726

Git拉分支及合并分支

拉分支: 比如我们像从master主干拉取一个新分支我们需要先切换到master分支,并且更新到最新然后创建分支并且关联远程仓库: git checkout master git pull git checkout -b dev1.0 //稍等一会会发现分支会自动切换到dev1.0 git push origin dev1.0 git push --set-upstream origin dev1.0 //修改了的东西要提交,不然你切回master的时候会发现,分支上修改的东西在master

天涯芳草 3845

[QMT量化交易小白入门]-二、如何用miniQMT获取沪深A股的板块列表、历史行情数据和实时行情数据

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步,自己淋过雨了,希望大家都有一把伞。

木头大左的博客 5659

Git之Git分支

语句解释git branch查看分支列表git branch 分支名称创建新分支git checkout 分支名称切换分支git checkout -b 分支名称分支的快速创建和切换git merge 要合并的分支名称合并分支。注意:假设要把 C 分支的代码合并到 A 分支,则必须先切换到 A 分支上,再运行 git merge 命令,来合并 C 分支!git branch -d 分支名称删除分支遇到冲突手动解决。

xrkhy的博客 1261

站在评审的角度写国自然基金本子,搭配这5条AI提示词,帮你一键提升本子中标率

多数同仁的选题失败,不是因为你的idea不好,而是你的逻辑没有立起来,你必须让评审看到,你是怎么从问题走向方法的。请你按照“同行做到哪、瓶颈卡在哪、我该怎么破”的逻辑,将我的创新点进行重构:【粘贴你原始的创新点描述】,要求:表达需结构化、可量化、可验证,突出对比后的实质性突破。与其等着评审指出问题,等着本子被拒,不如让AI提前模拟评审,帮你从可行性、创新性、国家价值、团队能力四个维度给你打分,并指出项目的致命破绽,提示词这样设计。创新点如果写不好,本子往往也会被拒,而评审一般喜欢的创新点都是有固定结构的。

智能AI让学术科研更容易 1241

Trustzone/TEE/安全 面试100问-目录

关键词:cache学习、mmu学习、cache资料、mmu资料、arm资料、armv8资料、armv9资料、 trustzone视频、tee视频、ATF视频、secureboot视频、安全启动视频、selinux视频,cache视频、mmu视频,armv8视频、armv9视频、FF-A视频、密码学视频、RME/CCA视频、学习资料下载、免费学习资料、免费 周贺贺,baron,代码改变世界ctw,Arm精选, 资深安全架构专家,十年手机安全/SOC底层安全开发经验。擅长trustzone/tee安全产品的设计

baron-周贺贺-代码改变世界ctw 652

【Git】Git 分支创建分支、分支合并、分支删除

文章目录创建分支合并分支删除分支删除本地分支删除远程分支 创建分支 从master创建分支或者从分支上面建立一个分支是一样的: 想从master或者dev分支上面创建新的分支,先切换分支到master或者dev,以master为例: git checkout master 创建一个本地分支dev_1,并切换到该分支上 git checkout -b dev_1 创建一个对应的远程分支 ...

汪雯琦的博客 727

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

git 查看分支的源分支_Git必知必会之Git分支

一、什么是Git分支能够熟练使用Git 分支操作是掌握分布式版本控制系统的基础,当我们创建一个仓库并对仓库进行初始化之后,该仓库会就会创建一个默认的 master 分支,而这个 master 分支可以被当做是最开始的主分支。Git 分支的创建不限制于网络,具有本地特性,而且还可以根据我们的需求来创建多个分支,这些分支可以是为了修复程序中的某个 bug 而存在 ,或者是为了增加当前程序的一些新特性都...

weixin_32300981的博客 2975

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Git详解之三:Git分支

几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大型项目来说会花费很长时间。有人把 Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来。Git 有何特别之处呢?Git 的分支可谓是难以置信的轻量级,它的新建操作几乎可以在瞬间完成,并且在不同分支间切换起来也差不多一样快。

多媒体开发者 1107

git分支指的是_Git详解之三 Git分支

Git 分支几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大型项目来说会花费很长时间。有人把 Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来。Git 有何特别之处呢?Git 的分支可谓是难以置信的轻量级...

weixin_31098573的博客 556

git——分支详解

分支详解分支查看分支创建和跟踪分支切换分支删除branch命令常用参数说明 分支查看 # 列出所有本地分支 $ git branch # 列出所有远程分支 $ git branch -r # 列出所有本地分支和远程分支 $ git branch -a # 显示本地分支当前指向的提交记录的哈希值 $ git branch -v # 显示本地分支当前指向的提交记录的哈希值 # 以及和其上游分支(远程跟踪的分支)的相对位置(及本地分支和远程分支是同步,超前,还是落后),如果有的话。 $ git branc

纾与妤 402

git基于分支新建分支_Git何谓分支

在 Git 中提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照的指针,包含本次提交的作者等相关附属信息,包含零个或多个指向该提交对象的父对象指针:首次提交是没有直接祖先的,普通提交有一个祖先,由两个或多个分支合并产生的提交则有多个祖先。为直观起见,我们假设在工作目录中有三个文件,准备将它们暂存后提交。暂存操作会对每一个文件计算校验和(即第一章中提到的 SHA-1...

weixin_39627144的博客 1104
上一篇: Git——本地使用详解
下一篇: Git——修改历史记录详解
吴声子夜歌
博客等级 码龄9年 2688粉丝 2271原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值