【问题标题】:Git - How to add local repository to new BranchGit - 如何将本地存储库添加到新分支
【发布时间】:2015-05-22 09:56:58
【问题描述】:

我正在开展一个我们已经达到里程碑的项目。我的 git 存储库是最新的,并且一切正常。我们的客户现在已经更新了他们的 api,我们不确定它将如何影响我们的代码。

我想做的是创建一个分支(已经完成)并将完整的存储库上传到分支。所以我将复制项目,一个在主分支,一个在新分支。然后我将工作并提交到新的分支,而不影响主人。所以接下来对于每个版本我都可以做同样的事情,所以如果有任何问题我们可以回退到上一个分支。

请有人告诉我该怎么做。我正在使用 Git,并且正在通过 mac 终端工作。

我已经解决了关于 SO 的相关问题,但我没有看到我需要的信息,或者我可能错过了。

【问题讨论】:

  • “将完整的存储库上传到分支”对我来说没有意义。你有一个存储库,它有分支。您不能将存储库放入分支中,反之亦然。
  • 也许您过去一直在使用 mercurial?在那里,分支存储在不同的文件夹 IIRC 中。在 git 中并非如此。您有一个分支,当您结帐时它会更新您的本地文件。没有重复。

标签: android git terminal


【解决方案1】:

假设您在主仓库中创建的分支是<main_repo_new_branch>。那么步骤是:

cd <local_repo_dir>
git remote add mainrepo <main_repo_dir>
git push mainrepo <local_repo_branch>:<main_repo_new_branch>
cd <main_repo_dir>
git checkout <main_repo_new_branch>

【讨论】:

    【解决方案2】:

    您不会将存储库上传到分支。

    您的代码在存储库中,并且存储库具有分支。没有重复,但您可以获取(签出)master 或分支以将您的工作文件设置为您想要的版本:master 用于未触及的更改,分支用于您最近的更改。

    当你达到里程碑时最好做的就是标记提交:

    $ git tag v1.0
    

    然后你可以从那里开始一个分支来集成新的 API

    $ git checkout -b client_api_update
    

    在您的分支中工作并提交。它不会影响 master 中的内容,当您想要获取里程碑版本中的工作文件时,您可以签出这些内容(或签出标签)。

    新 API 的集成完成后,是时候将您的分支合并到 master 以发布对新 API 的支持:

    $ git checkout master
    $ git merge client_api_update --no-ff
    

    --no-ff 是可选的,但我认为它使历史更加优雅。

    你正处于一个新的里程碑,所以标记:

    $ git tag v1.1
    

    您的历史记录如下所示:

        /- v1.0            /- v1.1 
    A---B------------------G - master
        \---C---D---E---F-/ - client_api_update
    

    【讨论】:

    • 直接从我嘴里说出来的话,+1 为 --no-ff 提示
    猜你喜欢
    • 2020-12-06
    • 2021-02-16
    • 2015-12-16
    • 1970-01-01
    • 2022-11-09
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多