git使用的几个小tips分享
写在前面
本文是我在使用git过程中总结出来的几个小经验,能够解决初学者在使用远程仓库,如GitHub、Gitee等,可能遇到的几个常见问题。由于本人也在不断探索中,有新的经验也会继续在这里不定期更新。
问题1:Github上面的项目太大怎么办?
初学者看到好的项目,一般直接git clone下来。但是对于大型项目,通常有很多分支,我们可以轻量的clone项目。
仅clone某个分支
# [branch]是要clone的分支名,[origin]是项目地址
git clone -b [branch] [origin]
仅clone最新一次commit
git clone --depth=1 [origin]
# 当然也可以二者结合
git clone -b [branch] --depth=1 [origin]
问题2:Github下载速度慢怎么办?
由于GitHub服务器在国外,本人经常遇到项目clone一半就断掉的情况。解决这个问题,网上常用的是两个方法[1]:
更改host
-
分别在上面打开的网站中查找github.com和github.global.ssl.fastly.net的IP地址;
-
将上面的两个IP地址存到本地hosts文件中(该文件的地址一般在C:\Windows\System32\drivers\etc\下);
# 示例如下
140.82.113.3 github.com
151.101.185.194 github.global.ssl.fastly.net
- 打开cmd,在cmd命令行输入:ipconfig/flushdns(刷新dns)。
利用Gitee同步
-
打开码云https://gitee.com/ 并注册登录;
-
创建仓库;
-
在新建仓库页选择 “导入已有仓库”;
-
复制你需要下载的git链接,如https://github.com/star2dust/parl-notes.git 放到导入已有仓库中;
-
点击创建,然后下载。
问题3:git如何同步代码多个远程仓库?
当GitHub的龟速逼着我们使用多个远程仓库时,问题又来了。怎么同步多个远程仓库呢?
如果只在GitHub和Gitee之间同步,还是比较容易的。首先Gitee可以完美搬运GitHub仓库并同步,但反过来就比较麻烦了,毕竟GitHub没这功能。那么我们就需要如下步骤:
- 本地clone一下Gitee仓库;
git clone [gitee origin]
- 删除origin默认远程库;
git remote rm origin
- 再关联GitHub远程库;
git remote add origin [github origin]
- 最后push origin就可以了。
对于多个远程库中,需要用不同的名称来标识不同的远程库,而git给远程库起的默认名称是origin。所以我们需要修改、配置名称,以关联不同远程库。有两种方式[2]:
命名方式同步
- 先删除已关联的名为origin的远程库;
git remote rm origin
- 然后,再关联GitHub的远程库;
git remote add github [github origin]
- 接着,再关联码云的远程库。
git remote add gitee [gitee origin]
配置方式同步
修改.git文件夹内的config文件:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@github.com:user/demo.git
fetch = +refs/heads/*:refs/remotes/github/*
[branch "master"]
remote = origin
merge = refs/heads/master
将上述文件内容[remote "origin"]内容复制,修改origin名称,内容如下:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "github"]
url = git@github.com:user/demo.git
fetch = +refs/heads/*:refs/remotes/github/*
[remote "gitee"]
url = git@gitee.com:user/demo.git
fetch = +refs/heads/*:refs/remotes/gitee/*
[branch "master"]
remote = origin
merge = refs/heads/master
查看远程库
通过以上两种方式的任一种方式配置完成后,我们用git remote -v查看远程库信息:
gitee git@gitee.com:user/demo.git (fetch)
gitee git@gitee.com:user/demo.git (push)
github git@github.com:user/demo.git (fetch)
github git@github.com:user/demo.git (push)
解决访问github等网站慢或下载失败的问题。https://www.cnblogs.com/USTC-ZCC/p/11163292.html ↩︎
git同步代码至github和gitee(码云)。https://zhuanlan.zhihu.com/p/71163868 ↩︎