gpt4 book ai didi

git - 如何将新分支添加到现有 GitHub 存储库作为主要分支?

转载 作者:行者123 更新时间:2023-12-04 14:27:12 25 4
gpt4 key购买 nike

我在一个月前为我的项目创建了 GitHub 存储库,并将我以前的所有实现推送到我的 github 存储库。然而,现在我想出了一个新的实现,它比以前的版本更稳定,更新的解决方案更有效。我的目标是,我想在我的项目存储库中保留我以前的实现,同时,我打算在我的 github 仓库中引入新分支,标记为 major 分支,同时将以前的实现标记为 default。我怎样才能以安全的方式做到这一点?我不想失去我以前的工作,我想确保新引入的分支可以作为 major 分支激活,同时停用保存以前工作的 default 分支。我怎样才能做到这一点?谁能指导我如何处理详细工作流程?提前致谢:)

编辑:

为了澄清一点,我没有将我的新实现推送到 github 存储库。我想重新打开包含我的新实现的分支新分支,这个新分支将转发到在线包构建服务器。请提供进一步的帮助?

最佳答案

I don't want to lose my previous work, and I want to make sure newly introduced branch can be active as major branch

可以关注semantic versioning在您的项目实现中。只需在您以前实现的最新提交 上提供一个标记(例如,v1.0.0)。然后 merge 您更新的/最新的更改与默认分支主机。

现在,将来如果您想返回/获取以前的版本,请查看标签 v1.0.0

  1. 添加提交您对分支的最新更改(例如,功能)。因此,您的 feature 分支包含所有最新更改。

    $ git checkout -b feature
    $ git add .
    $ git commit -m 'new implementation'
    $ git push origin HEAD # push to remote 'feature' branch
  2. 现在 checkoutmaster 分支,并在您之前实现的提交顶部添加一个标签

    $ git checkout master
    $ git tag -a v1.0.0 -m "my previous implementation"
    $ git push --tags # push v1.0.0 tag to remote

    $ git checkout -b prev-impl-v1.0.0 # create a new branch ('prev-impl-v1.0.0') from the tag 'v1.0.0' which holds your previous implementation
    $ git push origin HEAD # push 'prev-impl-v1.0.0' branch
  3. 现在将您更新的更改(存在于 feature 分支中) merge 到默认分支 master 中。将 feature 分支 merge 到 master 分支。如果您完成了更新后的实现,则在新实现提交的顶部提供一个新标记

    $ git checkout master             # checkout master branch
    $ git pull origin feature # merge feature with master

    $ git tag -a v2.0.0 # give a new tag ('v2.0.0') on the new implementation

    $ git push origin HEAD # update the remote 'master'
    $ git push --tags # push 'v2.0.0' tag to remote

    $ git checkout -b new-impl-v2.0.0 # create a new branch from tag 'v2.0.0' tag
    $ git push origin HEAD # push 'new-impl-v2.0.0' branch

现在您的 master 已更新为您的最新更改。你也有不同的分支,如:

ma​​ster = new-impl-v2.0.0 = 持有新的 impl。 (v2.0.0 标签)
prev-impl-v1.0.0 = 保留以前的实现。 (v1.0.0 标签)

现在您可以从您的 master 创建一个新分支(例如,feature2)并在该分支上为您的下一个实现工作(如果需要)

$ git checkout master
$ git checkout -b `feature2`

# do changes for your next implementation

当您完成下一个实现时,重复 #3,就像您对 feature 分支所做的那样。

如果您想支持以前的实现,只需 checkout 您想要的特定标签。您还有两个分支(prev-impl-v1.0.0new-impl-v2.0.0),您可以在其中 checkout 以查看之前的任何实现。

 $ git checkout v1.0.0           # checkout to v1.0.0 = previous implementation
$ git checkout v2.0.0 # checkout to v2.0.0 = new implementation

# create a new branch from any checked out tag/commit
$ git checkout -b <branch-name> # create & checkout a new branch from the tag

More about Semantic Versioning

关于git - 如何将新分支添加到现有 GitHub 存储库作为主要分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42736478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com