Bonobo.Git.Server用法
- 在web端创建代码库后,记住代码库的地址
- 在本地已有的代码库里执行以下命令
解决big commit推送失败的问题
参考:这后面几种方法的关键是拆分大的commit到tmp分支后,还需要将这个大的commit merge到tmp分支,然后将tmp分支逐个commit进行push,一直到大的那个commit也被push成功,此时再回到master分支push那个大的commit就可以成功了。一个可行的操作过程如下:
- 新建tmp分支并在本地切换到该分支
- 打开master分支的log列表
- 浏览master分支的big commit,找到几个磁盘占用很大的文件
- 重复上一步,直到big commit被分解成git server可以接收的多个small commits
- 关键一步:merge master_big_commit to tmp
- 将tmp分支的small commits逐个推送,一直到merged commit也push成功
- git push origin commit_id:refs/heads/tmp
- 推送master分支的big commit
- git push origin big_commit_id:refs/heads/master
- 后面正常push,如再遇big commits,重复以上操作即可
- 将master推送完成后,对tmp保留或删除都可以。建议保留作为解决推送big commit问题的专用分支
git push origin 7位hashhex值:refs/heads/master
pull和push的格式
参考git-pull:
git pull <远程主机名> <远程分支名>:<本地分支名>
比如:
git pull origin master:master // origin是主机名,通过git remote -v可以获取 // 若本地分支名就是当前分支,则可以省略冒号和本地分支名
参考git-push:
git push <远程主机名> <本地分支名>:<远程分支名>
比如:
git push origin master:master // origin是主机名,通过git remote -v可以获取 // 若远程分支名与本地分支名相同,则可以省略冒号
准确来说,上面origin不叫主机名,而应该叫库名,指令通用格式为:
git push/pull <repository> <src>:<dst>