【问题标题】:How to connect BitBucket repository and existing local git project once there is already code on BitBucket一旦 BitBucket 上已有代码,如何连接 BitBucket 存储库和现有的本地 git 项目
【发布时间】:2021-06-07 18:36:51
【问题描述】:

请注意:虽然我在这里提到了 BitBucket,但我认为这是一个git 的核心问题,任何有经验的 git 用户都可以回答。我只提到 BitBucket 是为了让人们知道我使用 GitHub,因此,无法使用 GitHub 特定的解决方案解决问题。但同样,我认为答案是 100% 在 git 命令行上。

另外,如果考虑到基于 BitBucket UI 的解决方案或纯 git 命令行解决方案之间的偏好,我当然更喜欢后者!


我这里有一个马前车场景。

我被要求创建一个新项目并为其编写一些代码,因为当时与我合作的人还没有准备好在他们的 BitBucket 工作区中创建一个新的存储库。所以我有一个在本地工作的 POC,将我的项目命名为 some-service,现在我准备将该项目推送到一个新的 BitBucket 存储库以与其他开发人员共享。我想要一个主分支和一个开发分支(或者这些天 git/BitBucket 的规范)。

问题是,他们不愿意给我“创建新的存储库”权限,所以他们坚持他们创建存储库并简单地给我读/写权限。因此,在 BitBucket 上,他们创建了一个名为 some-service 的新存储库,其中包含一个 README.md 和一个 .gitignore,并且它有一个唯一的 master 分支。

通常在 GitHub 上,我自己创建存储库,他们有一个 main 分支,GitHub 为我提供了几行逗号来将我现有的本地存储库与 GitHub 上的新存储库连接/同步。

我可以在这里做什么,最好只从 git 命令行,这样:

  • 我可以克隆这个 repo 或 git init 我的本地 some-service 项目,然后“连接它们”,这样我就可以在命令行上 git push 并将这些更改推送到远程项目中的分支比特桶;和
  • 我可以将本地副本中的代码设置为main 分支并将其推送到BitBucket;和
  • 在 BitBucket 中创建一个 develop 分支并将该分支拉下,这样无论是在本地还是在 BitBucket 上,我都有 maindevelop

在此先感谢您提供的所有帮助!

【问题讨论】:

    标签: git bitbucket


    【解决方案1】:

    您可以为本地存储库添加远程。

    具体

    # Add bit bucket repository as remote
    git remote add origin <link to bit bucket repository>
    
    # Fetch remote changes (Readme etc)
    git fetch origin
    
    # Rebase local commit on top of remote
    git rebase origin/master
    
    # Push main branch to origin
    git push -u origin main
    
    # GUI interface necessary at this point for BitBucket.
    # Navigate to the repository, then enter "Repository settings" (appears on
    # the left list menu), enter "ADVANCED", under "Main branch" select 
    # "main". Finally, click "Save changes".
    
    # Delete master branch on remote
    git push origin --delete master
    
    # Create the develop branch, assuming it doesn't exist
    git checkout -b "develop"
    
    # Push develop branch to origin
    git push -u origin develop
    

    【讨论】:

    • 这是一个很好的答案@zois (+1) -- 你介意给我 all 为此适用的 git 命令行调用吗?就像你说“重新定位你的本地更改”一样?我会为此而奔走什么?我如何确保分支的名称是main,而不是master,等等? develop 命令同上。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2020-12-06
    • 2015-02-12
    • 2019-05-12
    • 2018-03-19
    • 1970-01-01
    • 2018-12-09
    • 2013-08-10
    • 2014-07-20
    相关资源
    最近更新 更多