Git管理分支怎么创建(git,web开发)

时间:2024-04-30 03:50:38 作者 : 石家庄SEO 分类 : web开发
  • TAG :

希望大家仔细阅读,能够学有所成!

分支操作允许创建另一条开发线。我们可以使用此操作将开发过程分为两个不同的方向。例如,我们发布了一个 6.0 版本的产品,我们可能想要创建一个分支,以便 7.0 功能的开发可以与 6.0 错误修复分开。

创建分支

Tom 使用gitbranch <branch name>命令创建一个新分支。我们可以从现有分支创建一个新分支。我们可以使用特定的提交或标签作为起点。如果未提供任何特定的提交 ID,则将以 HEAD 为起点创建分支。

[jerry@CentOSsrc]$gitbranchnew_branch
[jerry@CentOSsrc]$gitbranch
master
new_branch

创建了一个新分支;Tom 使用 git branch 命令列出可用的分支。Git 在当前签出的分支之前显示一个星号。

创建分支操作的图示如下所示

Git管理分支怎么创建

在分支之间切换

Jerry 使用 git checkout 命令在分支之间切换。

[jerry@CentOSsrc]$gitcheckoutnew_branch
Switchedtobranch'new_branch'[jerry@CentOSsrc]$gitbranch
master
new_branch

创建和切换分支的快捷方式

在上面的例子中,我们分别使用了两个命令来创建和切换分支。Git 为checkout 命令提供了-b选项;此操作创建一个新分支并立即切换到新分支。

[jerry@CentOSsrc]$gitcheckout-btest_branch
Switchedtoanewbranch'test_branch'[jerry@CentOSsrc]$gitbranch
master
new_branch
test_branch

删除一个分支

可以通过在 git branch 命令中提供 –D 选项来删除分支。但在删除现有分支之前,切换到另一个分支。

Jerry 目前在test_branch 上,他想删除该分支。所以他切换分支并删除分支,如下所示。

[jerry@CentOSsrc]$gitbranch
master
new_branch
test_branch
[jerry@CentOSsrc]$gitcheckoutmaster
Switchedtobranch'master'[jerry@CentOSsrc]$gitbranch-Dtest_branch
Deletedbranchtest_branch(was5776472).

现在,Git 将只显示两个分支。

[jerry@CentOSsrc]$gitbranch
master
new_branch

重命名分支

Jerry 决定在他的字符串操作项目中添加对宽字符的支持。他已经创建了一个新分支,但是分支名称不合适。因此,他通过使用-m选项后跟旧分支名称和新分支名称来更改分支名称。

[jerry@CentOSsrc]$gitbranch
master
new_branch
[jerry@CentOSsrc]$gitbranch-mnew_branchwchar_support

现在, git branch 命令将显示新的分支名称。

[jerry@CentOSsrc]$gitbranch
master
wchar_support

合并两个分支

Jerry 实现了一个函数来返回宽字符串的字符串长度。新代码将显示如下

[jerry@CentOSsrc]$gitbranch
master
wchar_support
[jerry@CentOSsrc]$pwd
/home/jerry/jerry_repo/project/src
[jerry@CentOSsrc]$gitdiff

上面的命令产生以下结果

ta/src/string_operations.cb/src/string_operations.c
index8ab7f42..8fb4b00100644---a/src/string_operations.c
+++b/src/string_operations.c
@@-1,4+1,14@@#include<stdio.h>+#include<wchar.h>+
+size_tw_strlen(constwchar_ts)
+
{
+constwchar_t
p=s;
+
+while(p)
+++p;
+return(p-s);
+
}

测试后,他提交并将他的更改推送到新分支。

[jerry@CentOSsrc]$gitstatus-s
Mstring_operations.c
??string_operations
[jerry@CentOSsrc]$gitaddstring_operations.c
[jerry@CentOSsrc]$gitcommit-m'Addedw_strlenfunctiontoreturnstringlenghtofwchar_t
string'[wchar_support64192f9]Addedw_strlenfunctiontoreturnstringlenghtofwchar_tstring1fileschanged,10insertions(+),0deletions(-)

请注意,Jerry 正在将这些更改推送到新分支,这就是他使用分支名称wchar_support而不是master分支的原因。

[jerry@CentOSsrc]$gitpushoriginwchar_support<−−−Observerbranch_name

上述命令将产生以下结果。

Countingobjects:7,done.
Compressingobjects:100%(4/4),done.
Writingobjects:100%(4/4),507bytes,done.
Total4(delta1),reused0(delta0)
Togituser@git.server.com:project.git
[newbranch]
wchar_support->wchar_support

提交更改后,新分支将如下所示

Git管理分支怎么创建

Tom 很好奇 Jerry 在他的私有分支里做了什么,他检查了wchar_support分支的日志。

[tom@CentOSsrc]$pwd
/home/tom/top_repo/project/src
[tom@CentOSsrc]$gitlogorigin/wchar_support-2

上述命令将产生以下结果。

commit64192f91d7cc2bcdf3bf946dd33ece63b74184a3
Author:JerryMouse<jerry@tutorialspoint.com>Date:WedSep1116:10:062013+0530Addedw_strlenfunctiontoreturnstringlenghtofwchar_tstringcommit577647211ed44fe2ae479427a0668a4f12ed71a1
Author:TomCat<tom@tutorialspoint.com>Date:WedSep1110:21:202013+0530Removedexecutablebinary

通过查看提交消息,Tom 意识到 Jerry 为宽字符实现了 strlen 函数,并且他希望在 master 分支中具有相同的功能。他没有重新实现,而是决定通过将他的分支与主分支合并来获取 Jerry 的代码。

[tom@CentOSproject]$gitbranch
master
[tom@CentOSproject]$pwd
/home/tom/top_repo/project
[tom@CentOSproject]$gitmergeorigin/wchar_support
Updating5776472..64192f9
Fast-forward
src/string_operations.c|10++++++++++
1fileschanged,10insertions(+),0deletions(-)

合并操作后,主分支将出现如下

Git管理分支怎么创建

现在,分支wchar_support已与主分支合并。我们可以通过查看提交消息或查看对 string_operation.c 文件所做的修改来验证它。

[tom@CentOSproject]$cdsrc/
[tom@CentOSsrc]$gitlog-1commit64192f91d7cc2bcdf3bf946dd33ece63b74184a3
Author:JerryMouse
Date:WedSep1116:10:062013+0530Addedw_strlenfunctiontoreturnstringlenghtofwchar_tstring[tom@CentOSsrc]$head-12string_operations.c

上述命令将产生以下结果。

#include<stdio.h>#include<wchar.h>size_tw_strlen(constwchar_ts)
{constwchar_tp=s;while(p)
++p;return(p-s);
}

测试后,他将他的代码更改推送到主分支。

[tom@CentOSsrc]$gitpushoriginmaster
Total0(delta0),reused0(delta0)
Togituser@git.server.com:project.git5776472..64192f9master−>master

变基分支

Git rebase 命令是一个分支合并命令,但不同的是它修改了提交的顺序。

Git merge 命令尝试将来自其他分支的提交放在当前本地分支的 HEAD 之上。例如,你的本地分支提交了 A->B->C->D 并且合并分支提交了 A->B->X->Y,那么 git merge 会将当前本地分支转换为类似 A-> B->C->D->X->Y

Git rebase 命令试图找出当前本地分支和合并分支之间的共同祖先。然后通过修改当前本地分支中的提交顺序将提交推送到本地分支。例如,如果您的本地分支提交了 A->B->C->D 并且合并分支提交了 A->B->X->Y,那么 Git rebase 会将当前本地分支转换为类似 A- >B->X->Y->C->D。

本文:Git管理分支怎么创建的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:iOS ViewController的生命周期下一篇:

13 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18