快速回忆
git remote add neworigin xxx.git
git push neworigin --all
一个本质:remote的name就类比C语言的指针或者服务端的别名
背景
在公司或者外部,经常需要从某个仓库fork到自己的仓库,比如github上fork。在 github 或者 gitee 上可以通过点击 fork 直接创建自有的仓库。但有些场景自己有一个含有commit信息的本地仓库,希望新建一个云端仓库,提交本地代码并且保留commit信息,怎么操作?
本文将会根据这个场景记录使用的2条命令,以及通过这个命令理解1个本质和git设计中remote的概念。
2条命令
结论先行:
# 1. 下载某个仓库到本地,比如:
# git clone git@github.com:pyserial/pyserial.git
## 注意clone之后,在本地 git config -l可以看到云端服务器叫做origin
# 2. 云端创建某个新仓库
## web 操作
# 3. 直接提交本地仓库到云端的新仓库
git remote add myrepo git@github.com:[yourselfnew]/pyserial.git
## git config -l 可以看到2个remote
# 4. 提交到远程
git push myrepo --all
# 如果要操作到新的远端,就使用新的名字neworigin提交到远端,同时原来的origin还是在,只是本地仓库具有了2个远端。本质其实是git是分布式仓库,1个本地,2个remote,都能够自由的push到对端。
添加前:
添加中:
添加后:
1个本质
平时提交命令使用的git push origin这里的origin本质可以理解是云端服务器的一个别名,用 C 语言可以类比理解为云端 URL 的一个指针。
本地仓库可以有多个remote的服务器,那么就可以有多个指针,只是不同的指针指向对应仓库。