git-branch 相关问题

git-branch是管理分支的Git命令。

Git重置和/或删除远程分支上的提交

关于git,我有一个小问题。在项目开始时,我的工作流程整洁(图1和2)。图1来自Intellij,而图2来自gitk&命令。不出所料,我们...

回答 1 投票 0

从git repo中克隆单个分支

我已经尝试过几次从我的组织提供的git repo克隆单个分支。我试过git bash,乌龟,但是每次我尝试克隆一个分支时,它都会开始克隆整个...

回答 1 投票 0

Gitlab-创建分支后运行脚本

分支命令后是否有执行脚本的选项:'git branch new123?如果用户将创建新分支,我想自动签出到新分支并使用分支自动创建文件夹'new123'...

回答 1 投票 1

更新Git子模块而不会丢失我的代码

[我是Git的新手,现在处于这种情况:我是计算机科学专业的学生, 现在我们有一个来自我大学的git存储库(位于GitLab上),并且正在获取该“主要”存储库。 ..

回答 2 投票 0

Git Hooks:make分支包含特定字符

我开始学习如何在我的Git项目中实现钩子。我希望这样做,因此每个团队成员都必须在分支机构名称中也插入他们的姓名。这就是我写的……

回答 1 投票 0

可以在git本地分支中使用不同的配置文件吗?

我想知道是否可以在我的本地仓库中使用生产数据库凭据在主分支中使用配置文件,在开发分支中使用具有不同凭据和数据库的配置文件。 ...

回答 1 投票 0

从中继线合并到分支,但仅分支中的文件

我已将中继线分支到功能分支。为了使分支保持最新状态,我想经常从主干合并(始终是最新的),但是我不希望主干中的所有内容都变得...

回答 2 投票 3

Git从分支中减去推送的提交数

我在同一分支上为某个模块进行了一些代码的共同开发,而在同一分支上我也与同事的模块进行了集成。基本上我最终从...

回答 1 投票 0

使用git工作流程的正确过程是什么?一个成功的Git分支模型?

我对git工作流程还很陌生,所以请裸着我,谢谢。我正在使用此工作流,该工作流称为“成功的Git分支模型”,但我还没有完全理解它,所以我在问...

回答 1 投票 0

为什么无法在GIT中获取我的远程分支的完整列表?

我不太喜欢GIT,但遇到以下问题。我在Ubuntu机器上使用GIT。我也在Mac机上尝试过,但没有遇到与在我的...

回答 1 投票 0

是否有一种方法可以在GIT中锁定分支

我有一个想法,可以通过在GIT更新挂钩中添加一个锁定脚本来锁定用户将文件推送到存储库中,因为该推送只能将userid识别为参数,而不是分支。 ...

回答 4 投票 42

gitflow分支策略-多个版本

当前,我们正在使用GitHub流(功能分支)策略。但是,问题在于,有时功能会进入发布队列,即我的功能已合并到开发中(...

回答 1 投票 0

使用JGit删除远程Git分支

我正在尝试删除名为test的远程分支。运行此代码时我没有任何错误,但是远程分支没有被删除。 “ ans”是包含分支ID的目的地。 ...

回答 1 投票 2

Eclipse远程跟踪分支突然都消失了

我以前在远程跟踪中有很多分支。在我将GIT_TRACE_PACKET设置为1之后,将GIT远程连接超时设置为6000,向下尝试导入新的存储库项目,以进行尝试...

回答 2 投票 1

从dev分支到所有功能分支的合并更改

我有多个开发人员在功能分支上工作,我将他们的PR合并到开发分支。要在本地同步,我当前的流程是在dev分支上签出,提取最新更改,然后签出到...

回答 1 投票 0

git状态仍显示为“您的分支先于 N个提交。” git rebase 后> 假设我有一个从本地my-topic-branch分支分支出来的master分支,并且master分支与远程master分支绑定。 my-topic-branch分支最初是由名为tag1的标签创建的。 tag1是一个放置在远程主分支上的标签,由于git fetch,我看到了该标签。 有些时间过去,允许其他人将其更改推送到该远程主分支。再后来,其他人放下了新的tag2。 然后我再次使用git fetch以确保将所有这些远程标记都放入本地存储库中以进行进一步的操作。 我像这样将tag2设置为基准: $ git rebase tag2 First, rewinding head to replay your work on top of it... Applying: CENSORED_LOG_MESSAGE1 Applying: CENSORED_LOG_MESSAGE2 Auto packing the repository in background for optimum performance. See "git help gc" for manual housekeeping. 但是后来我运行git status并看到了这个: $ git status On branch my-topic-branch Your branch is ahead of 'tag1' by 195 commits. (use "git push" to publish your local commits) 我的期望是以上消息应该说明有关tag2的信息,当然不是我在195次提交之前领先于旧标记。 为什么git status会报告my-topic-branch分支的提交,而不是我最近基于的新提交? [如果这是预期的行为,那么很好,我将不得不忽略它,但是奇怪的是,我仍然落后195次提交master,但那肯定不是真的(如果git rebase实际上做了我认为应该做的事情。 更新1 如果HEAD仍在该分支上,我仍然可以通过以下方式找到my-topic-branch的基点: $ git show -s $(git merge-base master @) commit CENSORED_SHA1 (tag: tag2) Author: CENSORED_AUTHOR Date: CENSORED_DATE CENSORED_LOG_MESSAGE3 $ 但是这仍然是关于git status输出的问题。 更新2: 根据Pesho_T's comment更新: 我运行了git branch -vv,并得到了以下内容。这是经过审查的,但是要加上“ 2”和“ 4”之类的数字以区别于其他数字: $ git branch -vv | grep my-topic-branch * my-topic-branch CENSORED_SHA1_2 [tag1: ahead 195] MDFCOR-420 CENSORED_LOG_MESSAGE4 假设我有一个我的主题分支分支,该分支从我的本地master分支分支出来,并且该master分支与远程master分支绑定在一起。 my-topic-branch分支最初是在... 似乎很可能1 您意外创建了一个分支名称 和一个标签名称,它们在缩短时都打印相同。一旦有了两个这样的名称,它们就可以容纳不同的哈希ID。当parsing这样的名称时,您获得的哈希ID有点棘手(有规则,这些规则在the gitrevisions documentation中列出,但是规则也有例外)。最好通过重命名不合适的分支名称来摆脱这种情况。 请记住,像master这样的分支名称实际上是名称refs/heads/master;像v2.25.0这样的tag name 实际上是refs/tags/v2.25.0。因此,即使标签存在,也可以创建名为v2.25.0的branch,因为分支的full名称是refs/heads/v2.25.0,而不是refs/tags/v2.25.0。这两个名称是不同的,但是如果您查看每个的简短版本,则两者均为v2.25.0。 ahead的behind或git status计数消息是运行的结果: git rev-list --count --left-right <name1>...<name2> 请注意,两个名称之间有三个 点。2 两个名称是: name1是您的当前分支; name2是当前分支的上游 。 git rev-list命令,以这种形式(使用三个点),查找左侧名称为从…到达 ,而不是右侧名称的提交,以及<counts (--count),但分开(--left-right)而不是组合。这意味着这些计数取决于您当前的分支(当然,这就是为什么它说“您的分支...位于前面”)的原因。 和 上游设置。您可以通过git branch --set-upstream-to控制上游设置,并可以通过以下方式读取当前分支的上游:$ git rev-parse --abbrev-ref @{u} origin/master $ git rev-parse --symbolic-full-name @{u} refs/remotes/origin/master 为了帮助您在缩写时不小心使 branch name和tag name 看起来都相同的情况,请使用--symbolic-full-name变体。 分支的 上游 始终是另一个分支名称或远程跟踪名称,因为标记名称被禁止:git branch --set-upstream-to=v2.25.0 fatal: Cannot setup tracking information; starting point 'v2.25.0' is not a branch. origin/master之类的远程跟踪名称更为典型,但您 可以 将任何分支的上游设置为任何其他分支名称。如果ahead计数非零,通常就是您所看到的,也就是您在这里看到的。但是,如果两个计数都不为零,则git status将使用单词diverged。如果ahead计数为零,并且behind计数为非零,则git status打印behind计数。如果两个计数都为零,则分支与其上游同步,git status表示Your branch is up to date with ...。 有关三点语法的更多信息,请参见the gitrevisions documentation。要了解 可达性 ,请参阅Think Like (a) Git。对于简短的图形说明,请考虑以下图形: I--J <-- branch1 / ...--G--H <-- master \ K--L <-- branch2, origin/branch1 名称branch1是master的“前2”,因为从提交J开始,我们先返回到I,然后返回H,这意味着I-J的提交可以从branch1到达,但不能从master开始。同样,branch2比master早2,但它的两个是提交K-L。这意味着master是branch1或branch2的2 behind ,而这两个提交分别是I-J或K-L。同时,branch1与origin/branch1之间有分歧,因为它们都比前面[2](I-J)并且比后面[K-L)2。 1 如果您使用move标签,您可能会遇到类似的棘手情况,因为标签在所有Git存储库中都是通用的,但标签也永远都不是move。一旦一个Git存储库具有标签,即使某人已在该Git存储库旨在移动的其他某个Git存储库中强行移动了标签,它也会倾向于假定it具有的副本为正确。比赛。但这会显示不同的症状,因为您不能将分支的上游设置为标签名称。 2 用点集理论的术语,三点语法产生一个symmetric difference。因为这是对称的,所以只要您记得现在也交换了git rev-list --count --left-right将要打印的两个counts,就可以交换两个名称。

假设我有一个我的主题分支分支,该分支从我的本地master分支分支出来,并且该master分支与远程master分支绑定在一起。 my-topic-branch分支最初是在...

回答 1 投票 1

Git放弃所有更改

您好,我是试图学习的新开发人员。我使用git desktop,如果您不想将该文件添加到提交中,请在该桌面上右键单击文件并选择放弃更改。它将其还原回它的...

回答 2 投票 1

Git:如何在不接触工作目录的情况下切换分支?

我正在使用临时分支foo。满意更改后,我想将master(不是当前的)移动到foo的HEAD。我认为在Git上执行此操作的常用方法是:git checkout ...

回答 1 投票 1

从远程分支推送到另一个远程分支

如果我想将内容从remote:master推送到同一远程但不同的分支,该如何做?使用git push remote.git master:mybranch我可以将本地存储库推送到第二个...

回答 1 投票 0

在Git中为单元测试创 建新分支是一种好习惯吗?

例如,我有A类,并且具有用于实现A类的feature / A分支。是否应该创建一个新的功能分支(例如feature / TestA)来实现A类的单元测试?还是我应该...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.