在SVN中,我至少有两种创建分支的方法:
svn cp /home/me/localcheckout/trunk /home/me/localcheckout/branches/newbranch
svn cp http://server/trunk http://server/branches/newbranch
第一个在本地创建然后我必须提交整个分支 第二个在服务器上创建它。
第二个好处是我可以svn切换我的本地主干,对一些文件进行一些更改并只提交几KB。
是否可以使用Git实现这一目标? 有没有办法在GitHub上创建一个远程分支然后将它们拉到我的本地仓库?
我问的原因是我试图使用我的手机互联网连接将几个KB推送到一个新的远程分支,但当我推动它想要推送大约400 MB!
写作对象:22%(54080/245586),86.74 MiB | 13 KiB / s
有关类似问题,请参阅Git - pushing a remote branch for a large project is really slow。
答案 0 :(得分:102)
看起来github有一个简单的UI来创建分支。我打开分支下拉菜单,它提示我“查找或创建分支......”。输入新分支的名称,然后单击出现的“创建”按钮。
要从github检索新分支,请使用标准git fetch
命令。
我不确定这会对您的底层问题有所帮助,因为无论推送到哪个分支,基础数据被推送到服务器(提交对象)都是相同的。
答案 1 :(得分:46)
Git应该了解服务器上已经存在哪些文件,除非你以某种方式对你的树产生了巨大的影响,并且需要发送新的更改。
使用当前状态的副本创建新分支
git checkout -b new_branch #< create a new local branch with a copy of your code
git push origin new_branch #< pushes to the server
您能否描述一下您为了解存储库需要将哪些内容发送到服务器所做的步骤。
答案 2 :(得分:2)
在创建新分支之前,最好的做法是在本地计算机上安装最新的repo。请按照以下步骤创建无错分支。
1. $ git branch (check which branches exist and which one is currently active (prefixed with *). This helps you avoid creating duplicate/confusing branch name)
2. $ git branch <new_branch> (creates new branch)
3. $ git checkout new_branch
4. $ git add . (After making changes in the current branch)
5. $ git commit -m "type commit msg here"
6. $ git checkout master (switch to master branch so that merging with new_branch can be done)
7. $ git merge new_branch (starts merging)
8. $ git push origin master (push to the remote server)
我提到了这个blog,我发现它是一种更清洁的方法。