如何重用现有分支名称作为新分支?

2024-04-10

我的目的是拥有一个开发分支,我可以在其中创建功能分支。这些功能分支将被合并到 dev 分支,然后 dev 分支将被合并回 master。一些我如何搞砸了,我留下了我的开发分支,所以这就是我现在所拥有的。

我认为将password_rest_and_activation_support分支合并到master后,我可以创建一个新的“dev”分支,称为“dev-new”或“development”,但我似乎应该能够以某种方式重用“dev”名称,但我我不知道该怎么做。我正在考虑删除现有的 dev 分支并创建一个新分支?鉴于 dev 分支也在远程上,正确的方法是什么?


从根本上来说,分支名称就像小便签标签一样。

您可以完全删除标签:

git branch -d foo

This finds the label with the word "foo" on it (this label is stuck on one particular commit) and peels that label off and throws it (the label, again) away.1

或者,您可以擦除标签上的名称并在上面写一个新名称:

git branch -m old new

该标签仍然停留在同一个提交上,但现在它有不同的名称。

或者,您可以将标签从一个提交移动到另一个提交:

git branch -f moved 1f0c9447

这里的最后一个参数是原始提交 SHA-1,但您可以使用任何可以定位某个提交的内容,例如另一个分支名称。

There are“删除并重新创建”、“重命名”和“移动”之间存在一些重要区别,因为这些标签还保留历史记录,其中记录了它们在上次移动之前命名的提交。如果完全删除标签,历史记录也会消失。如果您重命名标签,它会保留其历史记录,如果您移动标签,它会获取一个新的历史记录条目,因为您将其从一个提交移动到另一个提交。

当您进行新提交时,无论您所在的分支是什么,该分支标签都会移动自动地,指向新的提交。这一标签举动被载入史册。

使用最有意义的选项(您想要保留或增强历史记录,还是只是希望将其丢弃?)。

(请注意,当您创建新分支时:

git branch new

您可以提供原始提交 SHA-1,或任何找到提交的内容。所以git branch new existing将建立新的分支new指向相同的提交existing.)


分支历史记录保存在每个分支的"reflog" https://www.kernel.org/pub/software/scm/git/docs/git-reflog.html。有一个参考日志HEAD还有,以及git reflog向你展示那个,但是git reflog show foo显示历史记录以供参考(通常是分支)foo.

This history is normally kept for 90 days.2 Furthermore, it's purely local: it does not get copied on git clone and git fetch, nor pushed with git push.


顺便说一句,标签几乎与分支完全相同,除了“标签”一词之外,还有两个很大的区别:它们永远不会supposed移动(并且不会自动移动),并且它们不记录历史(因为它们不应该need一)。 “远程分支”,又名远程跟踪分支,是这两者的交叉。You不要移动它们,甚至不要通过提交来移动它们,但是它们domove:当你的 git 联系远程并获取新的提交时,它还会获取分支标签移动,并更新你的远程跟踪分支及其引用日志。


1You can do this at any time with any label (with -D, uppercase), but if you remove the last label that finds some commit(s), those commits go invisible—you won't see them in gitk --all displays any more, for instance—and eventually (after about a month) they will get garbage-collected.

2As usual with git, it's actually a lot more complicated than that: there are two different reflog expiry values, one for "reachable" objects and one for "unreachable" objects. The 90 day default is for reachable objects; unreachable objects default to 30 days; and both values can be configured.

此外,特别stash参考(由git stash https://www.kernel.org/pub/software/scm/git/docs/git-stash.html)的默认过期设置为“从不”,这样存储就不会过期。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何重用现有分支名称作为新分支? 的相关文章

随机推荐

  • Windows Forms应用程序中收银程序的问题

    我正在创建一个收银机程序 这是一个简单的数学 其中结果 gt 支付的钱 价格 我想要文本框打印出您拿回的金额以及面额 例如 您输入价格 500 和成本 650 gt 文本应显示 退款 150 100 美元 50 美元钞票 这是我第一次在 W
  • Ruby,“不兼容的字符编码:UTF-8 和 CP852 (Encoding::CompatibilityError)”

    Why encoding utf 8 out File open z test txt a out puts out close out File open z test txt r puts out read 导致 不兼容的字符编码 UT
  • 使用 PostgreSQL 和 JSONB 选择“WHERE IN”

    给定 table a 像这样 id name 1 aaaa 2 bbbb 3 cccc 我显然可以发出以下查询 SELECT FROM table a WHERE name IN aaaa bbb 但给定 table b 像这样 id da
  • 如何.release()由RingtoneManager实例化的MediaPlayer?

    我在我的活动中收到默认铃声 remindRingtoneView TextView findViewById R id remind ringtone remindRingtoneView setText RingtoneManager g
  • sas7bdat 变量名称中带有空格

    我收到了几个扩展名为 sas7bdat 的 SAS 数据集文件 我在 Windows 上使用 SAS 9 3 这些文件的创建者显然使用了不同的环境和 或软件 许多文件的 var 名称包含空格和其他无效字符 甚至运行一个proc conten
  • 从 WPF 中的代码设置验证错误模板

    我的 WPF 应用程序中有一个文本框 我定义了一个用于验证错误的 ControlTemplate 如下所示
  • 忽略或解决机器人框架中测试自动化的证书警告

    使用机器人自动化框架浏览 URL 时 我总是收到一条消息 您的连接不是私有的 然后我们需要单击 高级 并继续访问 URL 无法手动继续访问 URL 那么有没有解决方案可以跳过机器人框架中测试自动化的此类证书检查 我读过这个问题的答案 如何解
  • java中正则表达式执行太慢[重复]

    这个问题在这里已经有答案了 我的目的是匹配这种不同的网址 网址 commy url commy extend url coma super extended url com等等 因此 我决定构建正则表达式 在 url 的开头和结尾处包含一个
  • Angular - 如何使用延迟加载模块激活 AUX 路由?

    我有一个有角度的应用程序正在延迟加载模块 首先 应用程序导航到home它加载模块 名为module1 主要路由 const routes Routes path redirectTo home pathMatch full path hom
  • 编写自定义属性检查器 - 验证值时如何处理就地编辑器焦点?

    Overview 我正在尝试编写自己的简单属性检查器 但我面临着一个困难且相当令人困惑的问题 首先 我要说的是 我的组件并不是要使用或处理组件属性 而是允许向其添加自定义值 我的组件的完整源代码位于问题的更下方 一旦将其安装在包中并从新的空
  • C# 和 Java 中的垃圾收集之间的根本区别是什么?

    最近 我从一位 高级 开发人员 同事那里得到了一些关于 C 垃圾收集器的听起来非常错误的建议 例如 你需要使用析构函数 C 中随处可见 因为垃圾 收藏家不能信赖 C 垃圾收集器不能 就像 Java 垃圾一样 集电极 这对我来说听起来非常可疑
  • 推送通知徽章未到来

    我正在使用此编码进行苹果推送通知 推送通知即将到来 但它们没有任何徽章 任何建议此代码有什么问题 我没有收到徽章 我已经检查了设置选项卡 徽章就在那里 BOOL application UIApplication application d
  • CircleCI Android ConstraintLayout 不起作用

    我现在正在使用CircleCI对于我的项目 我也在实施新的约束布局在我的项目中 现在我被 CircleCI 大楼困住了 它向我展示了这个gradle 依赖项 run File home ubuntu android repositories
  • X 轴垂直线 iOS 图表

    也许这是一个简单的问题 但我想知道如何在 iOS 图表中的 X 轴下绘制垂直线和 X 轴上的标签 见图 如红线所示 更新 我正在使用的库是这个https github com danielgindi ios charts https git
  • 显示 JPanel 调整了另一个 JPanel 的大小

    我有一个关于嵌套 BoxLayout 的问题 我想构建一个由 2 个子面板组成的 DropDownPanel 顶部的标题和底部的正文 身体最初是隐藏的 通过单击标题 您可以切换正文的可见性并显示其内容 例如展开 折叠 一般来说 这工作得很好
  • “cabal install cabal-install”不会更新 OSX 中的 cabal 版本

    我是 haskell 和 cabal 的新手 所以我可能错过了一些简单的东西 我更新了 cabal install sudo cabal install cabal install Password Resolving dependenci
  • 如何使用 Git API 获取 GitHub 存储库的社交预览图像链接?

    我拥有许多 GitHub 存储库 通常每周添加项目 我正在使用 GitHub 页面制作自己的网站 因为我只能在 GitHub 页面上托管静态网站 因此我将使用 GitHub API 来自动更新网站上的新项目 但我还想向其中添加预览 示例图像
  • 无法切换到打瞌睡模式

    我正在遵循这方面的说明安卓页面 http developer android com training monitoring device state doze standby html为了将 android 切换到 doz 模式来测试我的
  • 如何构建增量有向非循环词图来存储和搜索字符串?

    我试图以简洁的方式存储大量字符串列表 以便可以非常快速地分析 搜索它们 有向非循环词图 DAWG 非常适合这个目的 但是 我首先没有要包含的字符串列表 因此它必须是可增量构建的 此外 当我在其中搜索字符串时 我需要带回与结果相关的数据 而不
  • 如何重用现有分支名称作为新分支?

    我的目的是拥有一个开发分支 我可以在其中创建功能分支 这些功能分支将被合并到 dev 分支 然后 dev 分支将被合并回 master 一些我如何搞砸了 我留下了我的开发分支 所以这就是我现在所拥有的 我认为将password rest a