我来自Perforce世界,现在正在掌握Git世界,并提出以下问题与本地回购有关...
我喜欢P4的一个方面就是我的开发线保存在服务器上,所以我不必备份我的提交(Git提交我认为提交)...提供P4服务器的人为我做这件事......他们非常好。
现在我开始使用github和bitbucket了。我可以克隆一个遥控器,分支一个开发线并在本地工作,但我也想让我的开发分支说,github,所以我可以将更改推送到他们的服务器并支持我的本地仓库,但在我开发的过程中,不要干扰主回购。
所以,我的问题是我该怎么做?这是在分布式版本控制世界中发生了多少,还是本地开发人员只需要更加小心地备份他的本地分支机构?... 感谢...
答案 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
,你已经做了一些更改。
现在有两种情况:
User
是你,如果你的github克隆中有dev
就可以了。这只需通过以下方式完成:
~/local_repo (anything)$ git push origin dev
告诉git将dev
分支推送到原点。
您无法推送到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)
您有两个主要选择:
您可以在Github上分叉主回购。
然后你可以在Github上推动你的分支而不会干扰你的主仓库。然后,您将通过拉取请求将完成的工作重新集成到主仓库上。
您也可以在主仓库上推送本地分行 如果您克隆了Github repo,则您的遥控器称为origin。因此,您可以将分支推送到与origin / master不同的分支:
git push origin master:backup_my_branch
该命令将在Github存储库上创建一个名为backup_my_branch的新分支,它将包含本地主服务器。当然,您可以使用与master不同的本地分支执行相同的操作。有了这个解决方案,你的同事也可以查看backup_my_branch来处理它。这有多酷?