Git 创建、删除分支详解

为什么Git仓库需要分支结构?


使用分支的主要原因是:


如果你正在为你的项目创建一个新的功能,如果直接在主分支上修改可能会破坏你的工作代码。这对于项目的活跃用户来说是非常糟糕的。最好从一个原型开始,在决定添加某个特性之前,你就应该粗略地设计一个不同的分支,避免出现不必要的问题


另一个可能更重要的原因是Git是为合作而生。如果每个人都在你的主分支上开始编程,它会引起很多混乱。每个人都有不同的知识和经验(编程语言和/或项目); 有些人可能会编写错误的代码,或者加入你的项目中可能不需要的代码/功能。使用分支机构可以验证贡献并选择要添加的特性加入到项目中。



添加一个分支


扫描二维码关注公众号,回复: 1436736 查看本文章

让我们回到本系列的上一篇文章,看看Demo目录中的分支是什么样的。你按照本文的说明从GitHub克隆repo并导航到Demo。运行以下命令:



该 pwd 命令(用于显示当前目录)报告你所在的目录(便于检查你是否在Demo中),git branch 列出您的计算机上Demo库中的所有分支,ls -la 列出 pwd 中的所有文件。现在你的终端将如下所示:



README.md 分支主机上只有一个文件。(请忽略列出的其他目录和文件。)


接下来,运行以下命令:



第一条命令,git status 命令用于显示工作目录和暂存区的状态。报告你当前正在使用的branch master,并且(如你可以在下面的终端屏幕截图中看到的那样)它是最新的origin/master,这意味着你在本地副本上的所有文件也存在于GitHub上。这两个副本没有区别。所有提交的副本都是相同的。


下一个命令,git checkout -b myBranch(创建并切换分支),-b 告诉Git创建一个新的分支,并将它命名 myBranch,并 checkout 切换我们新创建的分支。输入第三行,git status以验证您刚才创建的新分支。


正如下图所示,git status 报告在myBranch分支上,并且没有可提交的文件。这是因为既没有新文件创建也没有对现有文件进行任何修改。



如果你想查看分支的可视化表示,请运行 gitk 命令。如果电脑提示:bash: gitk: command not found…,那你则需要先安装gitk。(有关安装说明,请参阅适用于你的操作系统文档。)


下面的图片可以查看我们在Demo中所做的操作:你最后一次提交的内容是 Delete file.txt,之前有三次提交。当前的提交用黄色圆点表示,先前用蓝色圆点提交,黄色圆点和 Delete file.txt之间的三个方框表示每个分支的位置(即每个分支上的最后一次提交是什么)。由于刚刚创建myBranch,即 remotes/origin/master



现在让我们在分支上创建一个新文件myBranch,让我们观察终端输出。 运行以下命令:



第一个命令 echo 创建一个名为的文件 newFile,并 cat newFile 显示写入的文件。git status告诉你myBranch分支的状态。在下面的终端截图,Git的报告:myBranch上创建了一个叫做newFile的文件,目前untracked。这意味着Git没有被告知跟踪newFile发生的任何变化。



接下去的步骤是添加(add),提交(commit),取远程分支合并到本地(git push origin myBranch



这些命令中,所述分支 push 指令是myBranch代替master。Git正在将newFile推送到GitHub中的Demo库中,并告诉你它在GitHub上创建了一个与本地副本相同的新分支myBranch。下面的终端屏幕截图详细说明了这些命令及其输出的运行。



如果你去GitHub,你可以看到分支下拉菜单中包含两个分支可供选择。



切换到myBranch,你可以看到你在该分支上添加的文件



现在有两个不同的分支:master上有一个文件 README.md,而另一个myBranch上则有两个文件。


现在你已经知道如何创建分支了,我们来创建另一个分支。输入以下命令:



这边就不在显示终端输出了,因为我希望你自己尝试一下,才能真正的学会



删除分支


由于我们添加了两个分支,我们通过两个步骤删除myBranch分支


1.删除分支的本地副本:由于你无法删除你所在的分支,因此需要master运行下面截图中显示的命令切换分支(除非你打算保留的另一个分支):



git branch 列出可用分支;checkout 更改master分支并 git branch -D myBranch 删除该分支。git branch 再次运行以验证现在只有两个分支(而不是三个)。


2.从GitHub删除分支:myBranch通过运行以下命令删除远程副本:




分支名称前面的冒号(:)push 命令告诉GitHub删除分支。还有另一种方法是:



因为 -d(或 --delete)也会告诉GitHub删除你的分支。

猜你喜欢

转载自blog.csdn.net/qq_36761831/article/details/80518812