相关疑难解决方法(0)

Subversion存储库中"分支","标记"和"主干"的含义是什么?

我已经在Subversion(我猜通用存储库)讨论中看到了很多这样的话.在过去的几年里,我一直在为我的项目使用SVN,但我从未掌握过这些目录的完整概念.

他们的意思是什么?

svn tags glossary branch trunk

1181
推荐指数
14
解决办法
43万
查看次数

什么是git标签,如何创建标签以及如何结帐git remote tag(s)

当我签出远程git标签时使用这样的命令:

git checkout -b local_branch_name origin/remote_tag_name
Run Code Online (Sandbox Code Playgroud)

我得到这样的错误:

error: pathspec `origin/remote_tag_name` did not match any file(s) known to git.
Run Code Online (Sandbox Code Playgroud)

当我使用git tag命令时,我可以找到remote_tag_name.

git git-checkout git-tag

468
推荐指数
4
解决办法
56万
查看次数

源控制与版本控制?

哪个是存储源代码版本的系统的正确名称,如SVN或TFS?

我一直称它为源代码控制,但像维基百科这样的地方称它为版本控制?

为了使像这样的更复杂的网站有两个标签?

version-control naming

60
推荐指数
5
解决办法
2万
查看次数

提前标记一个提交

我有一个只有一个分支(master)的存储库.我是我的回购的唯一贡献者.

我最近添加了一个tag,本地和推送到GitHub.在做了我最后一次必要的提交后,但现在我意识到我应该再做一次更改/提交.

所以我拥有的是:

commit 124
commit 125
commit 126 <-- tag v1.0
commit 127
Run Code Online (Sandbox Code Playgroud)

我想将v1.0标记移动到下一个提交,即:127,本地和GitHub.

我怎样才能做到这一点?

versioning git commit version github

60
推荐指数
3
解决办法
3万
查看次数

指向已删除提交的Git标记会发生什么

说我做以下事情:

  1. 创建分支 X
  2. 创建标签t(分支X)
  3. 删除分支 X

标签会发生什么t?它刚刚漂浮在那里吗?它被认为是垃圾吗?

在删除分支本身之前,是否应该删除指向分支的所有标记?

参考

来自Git Basics - 标记:

Git使用两种主要类型的标签:轻量级和注释.轻量级标记非常类似于不会更改的分支 - 它只是指向特定提交的指针.

git git-tag git-branch

37
推荐指数
2
解决办法
7915
查看次数

"分支"究竟是什么意思?

长话短说...

据我所知,术语"分支"(用Git的说法)可能指的是相关但不同的东西:

  1. 提交的非符号引用/指针,
  2. 这种参考的名称(例如"主人"),
  3. 存储库的提交DAG的子图由这样的引用所指向的提交中可到达的所有提交组成.

但是,我已经看到这个术语过去常常是指三种可能的用法以外的东西(下面有更多细节).在Git上下文中,我的列表中缺少的"分支"一词是否还有其他有效和明确的用法?

更多细节

使用Git大约一年后,我正在为CS学生准备一个简短的教程.我真的想要确定Git术语,以避免任何混淆.

当然,我现在已经使用Git分支了一段时间; 我很习惯使用它们并且发现Git分支模型很棒.但是,我仍然发现术语"分支"有问题且含糊不清,因为它似乎至少引用了两个不同的东西,具体取决于它所使用的上下文...有时甚至在同一个教程/手册中.

用法1:branch =指向提交的指针/引用

Pro Git书(3.1中 - 分支是什么),在显示下图后,

在此输入图像描述

继续将分支定义为

只是一个指向其中一个提交的轻量级可移动指针.

据我所知,这也是Git手册页中"分支"的含义.

我对这个定义非常满意.我认为分支只是指向DAG中特定提交的引用,而分支的"提示提交"是该引用指向的提交.到现在为止还挺好.可是等等...

用法2:branch = DAG的子图

Atlassian的Git的教程介绍分支如下:

分支代表独立的发展路线.

我猜他们的意思是一串提交.让我改进一下这个想法......唯一对我有意义的解释是术语"分支"也可以指存储库的提交DAG子图,该提交DAG由所考虑的提示提交可到达的所有提交组成.

但是,Pro Git书籍也包含以下图表(参见3.4 - 分支工作流程),

在此输入图像描述

这似乎与我的解释相矛盾,因为它似乎暗示只有提交C2- C5(不C1)属于develop分支,并且只提交C6- C7(不是C1- C5)属于topic分支.

我发现这种用法含糊不清,因为如果我在那个阶段绘制DAG,而不知道分支引用在过去指向的位置,并且没有任何假设三个分支之间的任何层次结构,我会得到的是

在此输入图像描述

我还发现其他Git学习资源中的一些图表令人困惑.特别考虑以下内容(取自Lynda.com的介绍视频- Git Essential Training):

在此输入图像描述

这里,尖端master实际 534de(和HEAD指向master),但图中的"主"标签的位置是非常误导.在这种情况下,该标签应该描述的是我不清楚的......

编辑:我已经 …

git branch terminology

34
推荐指数
2
解决办法
3197
查看次数

标签和分支与git有什么区别?

可能重复:
git中标记和分支之间有什么区别?

我想做的是为我的代码的不同版本创建检查点.所以,一旦我做了一堆提交,我想说,"好的,在代码的这一点,这是完成版本0.1".然后我可以做更多的提交并再次做,并说,"好的,这一点是0.2完成".

我知道如何制作一个分支和一个标签......我只是不明白其中的区别,哪一个会做我想要的;)

谢谢

tags git branch

18
推荐指数
2
解决办法
2万
查看次数

git标签不在分支上

我从https://github.com/eclipse/mosquitto克隆了mosquitto repo .它包含一个标签v1.4.9.然而,它看起来不像是在一个分支上.

怎么会发生这种情况?作者是否真的在自己的仓库中保留了一个分支,但只将标签从该分支推送到github?或者他只是提交标签?

我把标签变成了一个本地分支:

$ git checkout -b work149 v1.4.9
Run Code Online (Sandbox Code Playgroud)

并查看了分支上的最后一次提交:

$ git log -1
commit 91bfd82491f90e24b6fe9c036f0b04a1f5c14a89
Merge: bf959ef 2d0af73
Author: Roger A. Light <roger@atchoo.org>
Date:   Thu Jun 2 22:05:34 2016 +0100

    Merge branch 'fixes'
Run Code Online (Sandbox Code Playgroud)

此提交不仅仅是fixes分支.

或者git log --graph我可以看到同一分支上的早期提交(不是fixes分支,而是我试图理解的分支):

* |   commit bf959ef9b0ae0e4d74bf80158ffb0b7c69da533d
|\ \  Merge: 646e0a0 5cca6b4
| |/  Author: Roger A. Light <roger@atchoo.org>
| |   Date:   Sun Feb 14 14:38:42 2016 +0000
| |
| |       Merge …
Run Code Online (Sandbox Code Playgroud)

tags git github git-branch

7
推荐指数
2
解决办法
4854
查看次数

Github Branch,标签:如何获取代码的特定版本?

我是Git hub的新手,我对标签和分支的概念感到困惑(这里解释)我想从git hub获得一个稳定版的PhantomJS(版本2.1.0).但我不明白我是否应该这样做:

git checkout master
git remote add upstream https://github.com/ariya/phantomjs.git
git fetch upstream
git rebase --onto tags/2.1.0 upstream/master master
Run Code Online (Sandbox Code Playgroud)

要么

git init
git remote add -t 2.1 -f origin https://github.com/ariya/phantomjs.git
git checkout 2.1
Run Code Online (Sandbox Code Playgroud)

你能解释一下,为什么?

git github git-tag git-branch

5
推荐指数
1
解决办法
6840
查看次数

在一个命令中添加具有特定标记而不是分支的子模块

对于rails模板,我想在新的rails应用程序中添加特定标签的子模块.为了保持这个简单,我想避免进入子目录并在那里运行git命令.

git submodule add --branch v1.3.37 git@example.com:foo.git vendor/foo

是我想要使用的,但它不接受--branch参数的标签:

fatal: 'origin/v1.3.37' is not a commit and a branch 'v1.3.37 cannot be created from it Unable to checkout submodule 'vendor/foo'

有没有一种简单的方法在特定标签上添加git子模块?

git git-submodules

5
推荐指数
1
解决办法
1987
查看次数

最好使用标签或分支?

我有几个git存储库.

对于每个项目,我需要其中的一些(标签或分支).
项目完成后,我从上次提交创建一个分支.
因为下一个项目可能会有根本性的变化,所以它们可能不再相互兼容.

但是,最好先标记提交,然后在需要之后创建一个分支(错误修复等)吗?

它甚至重要吗?

git git-tag git-branch

4
推荐指数
1
解决办法
130
查看次数