0%

git-clone

1. clone

1
2
3
4
5
6
7
8
9
# 添加所有文件
# -b 指定下载远程代码的分支, 默认为 master
# directory 指定代码存放的目录, 如果没有指定则为当前目录下的, 创建项目名称的目录用于存放代码
# -o 设置远程仓库名称, 默认为 origin
#
# --depth=1, 表示只拉取最近的一个 reversion
# 如果想看历史版本, 可以再用 `git fetch --unshallow` 拉取
# 如果想要再次拉取所有分支 `git pull origin refs/heads/*:refs/remotes/origin/*` 拉取
git clone -b $branch_id --depth=1 $git_url $directory

1.1. github 上 git clone 太慢

有以下 2 种方式解决

  1. 只获取最近一层 reversion
    减少历史版本对 clone 操作的影响
1
2
3
4
5
# --depth=1 只获取最近一个 reversion
# -b master 只获取 master 分支
git clone --depth=1 -b master $url
# 之后再获取历史版本
git fetch --unshallow
  1. 配置 host
    git clone 特别慢是因为 github.global.ssl.fastly.Net 域名被限制了
    只要找到这个域名对应的 ip 地址, 然后在 hosts 文件中加上ip与域名的映射, 刷新 DNS 缓存就可以了
1
2
151.101.76.249 github.global.ssl.fastly.net
192.30.253.112 github.com

2. 导入外部项目

1
2
3
4
5
6
7
# https://www.oschina.net/question/82993_133520
# 从原始地址clone一份bare仓库
git clone --bare https://github.com/bartaz/impress.js.git

cd impress.js.git
# 导入项目
git push --mirror git@git.oschina.net:username/impress-js.git