0

我来自 Perforce 世界,现在开始掌握 Git 世界,并有以下与本地回购有关的问题......

我喜欢 P4 的一件事是我的开发线保存在服务器上,所以我不必备份我的提交(我认为是 Git 中的提交)......提供 P4 服务器的人为我做这件事。 ..他们非常好。

现在我已经开始使用 github 和 bitbucket。我可以克隆一个远程,分支一个开发线并在本地工作,但我也希望我的开发分支在 github 上,这样我可以将更改推送到他们的服务器并备份我的本地 repo,但不是在我开发时干扰主仓库。

所以,我的问题是我该怎么做?这在版本控制的分布式世界中是否经常发生,或者本地开发人员是否必须更加小心地备份他的本地分支?...谢谢...

4

2 回答 2

2

当然,每个人都想要他们的代码,即使是在某个地方备份的开发分支。不仅用于备份,还可以从其他计算机访问。

让我们看下面的场景:

~ $ git clone git@github.com:User/Repo local_repo
~/local_repo (master)$ cd local_repo
~/local_repo (master)$ git checkout -b dev
~/local_repo (dev)$ touch new_file
~/local_repo (dev)$ git add new_file
~/local_repo (dev)$ git commit

现在,您在 github 上有一个远程的本地克隆,dev其中包含您进行了一些更改的新分支。

现在有两种情况:

  1. User是你吗,如果你有dev你的 github 克隆就可以了。这只需通过以下方式完成:

    ~/local_repo (anything)$ git push origin dev
    

    它告诉 git 将dev分支推送到原点。

  2. 你不能推到origin或者你不想用你的树枝污染它。在这种情况下,您需要在某处制作另一个遥控器,例如:

    ~ $ git clone --bare local_repo /address/to/another/remote
    ~/local_repo (anything)$ cd local_repo
    ~/local_repo (anything)$ git remote add personal /address/to/another/remote
    ~/local_repo (anything)$ git push personal dev
    

    /address/to/another/remote可以是 git 可以理解并有权写入的任何地址。如果不确定,您可以简单地克隆到附近的目录,将目录复制到您的服务器并将新地址提供给git remote add. 或者,您可以在 github 上制作您自己的项目的非官方克隆(请参阅此处的一种方法)并将地址添加到其中作为远程。

于 2013-04-11T14:04:00.997 回答
0

您有两个主要选择:

  1. 你可以在 Github 上 fork 主仓库。
    然后你可以在 Github 上推送你的分支,而不会干扰你的主仓库。然后,您将通过拉取请求将完成的工作重新集成到主存储库中。

  2. 你也可以在你的主仓库上推送你的本地分支。
    如果你已经克隆了一个 Github repo,你的远程被称为 origin。因此,您可以将分支推送到与 origin/master 不同的分支:

    git push origin master:backup_my_branch
    

    该命令将在 Github 存储库上创建一个名为 backup_my_branch 的新分支,其中将包含您的本地 master。您当然可以对不同于 master 的本地分支执行相同的操作。使用此解决方案,您的同事还可以查看 backup_my_branch 以进行处理。多么酷啊?

于 2013-04-11T14:05:11.287 回答