Git 中 fork 新仓库的 2 条命令和1个本质以及remote的4个操作(git remote add myrepo xxx.git、git push myrepo --all)

快速回忆

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的服务器,那么就可以有多个指针,只是不同的指针指向对应仓库。

local
remote
local repo
origin
remote:
URL:xxx.git
myrepo
remote:
URL: xxx

用 myrepo,指代远端新的仓库
用 origin,指代远端原来的仓库

从这个维度就能更加理解为什么经常提交代码需要添加origin,然后再指定分支,就是为了指定往哪里提交。比如:

# 假设本地新提交了5个commit此时可以提交到两个服务器
## git commit -m "xxx" 
## 提交到服务器A
git push origin master # 提交到URL A的git

## 提交到服务器B
git push myrepo master # 提交到URL B的git

从 git 的设计者角度看,就是为了保存多个仓库。就有一个remote相关的模块。比如这里是常用的remote add 新增一个remote,同样应该也就有CRUD 增删查改各种操作,这样理解就能更加通透。
比如,修改origin为其他名字:

git remote rename <old_name> <new_name>
# <old_name> 是当前远程仓库的名称, <new_name> 是您想要设置的新名称。
# 例如,如果您的远程仓库名称原来是origin,您想要将其改名为new-origin,您可以执行以下命令:
git remote rename origin new-origin
git
增: git remote add myrepo xxx
删: git remote remove myrepo
查: git remote # 不用给参数
如果-v可以查看详细信息
git remote -v
改: git remote rename oldname newname
经常用:git remote -v
查看已经设置了哪些remote
  • git man手册信息
    在这里插入图片描述
    在这里插入图片描述

其他信息

  • 平时 git push 默认会有一个 remote 服务器无需指定
  • 需要 push 到特定服务器使用
  • 站在git的设计者角度推测有remote的对象,然后推测有增删查改,可以灵活熟悉git
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值