GIT的开发线

时间:2013-04-11 13:49:44

标签: git perforce

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

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

现在我开始使用github和bitbucket了。我可以克隆一个遥控器,分支一个开发线并在本地工作,但我也想让我的开发分支说,github,所以我可以将更改推送到他们的服务器并支持我的本地仓库,但在我开发的过程中,不要干扰主回购。

所以,我的问题是我该怎么做?这是在分布式版本控制世界中发生了多少,还是本地开发人员只需要更加小心地备份他的本地分支机构?... 感谢...

2 个答案:

答案 0 :(得分: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是你,如果你的github克隆中有dev就可以了。这只需通过以下方式完成:

    ~/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上创建自己项目的非官方克隆(请参阅一种方法here)并将该地址添加为远程。

答案 1 :(得分:0)

您有两个主要选择:

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

  2. 您也可以在主仓库上推送本地分行 如果您克隆了Github repo,则您的遥控器称为origin。因此,您可以将分支推送到与origin / master不同的分支:

    git push origin master:backup_my_branch
    

    该命令将在Github存储库上创建一个名为backup_my_branch的新分支,它将包含本地主服务器。当然,您可以使用与master不同的本地分支执行相同的操作。有了这个解决方案,你的同事也可以查看backup_my_branch来处理它。这有多酷?