逻辑视图
Repo Branch Remote Location (Purpose)
------------------------------------------------------------
myrepo --> private --> git.mydomain.com (Incremental work)
|
+------> public --> github.com (Public releases)
实现过程
1. 新建仓库
基于已有仓库,直接跳2
# 新建仓库
$: mkdir myrepo; cd myrepo
# 初始化仓库
$: git init
2. 添加远程仓库源
# github 和 mydomain 是所添加源的别称,称其为<source name>
$: git remote add github https://github.com/foo/bar.git
$: git remote add mydomain https://git.mydomain.com/foo/bar.git
显示远程仓库:
# 显示所有远程仓库
$: git remote -v
# 显示某个远程仓库的信息
$: git remote show <source name>
# 删除远程仓库
$: git remote rm <source name>
# 修改远程仓库别名
$: git remote rename <old name> <new name>
3. 创建空白分支
# 创建空白分支dev
$: git checkout --orphan public
如果是基于已有的分支创建,需要清空
# 注意最后有一个句点
$: git rm -rf .
4. 拉取分支,将本地分支与远程分支关联
在创建的空白分支下,拉取远程仓库指定分支的代码。
# github源别名,dev分支名
$: git pull github public
# 关联远程分支
$: git branch --set-upstream-to=github/public public
# 或者
$: git branch -u github/public public
至此,我们已经创建了一个本地分支,并将其与远程分支关联。
同样的,创建其它分支只需要重复步骤3、4。
例如创建 private 分支,并将其与远程仓库 mydomain 的 private 分支关联,步骤如下:
$: git checkout --orphan private
$: git pull mydomain private
$: git branch -u github/private private
5. 推送本地分支
因为本地分支已经关联了远程分支,所以推送时只需要 git push 即可。
如果没有关联远程分支则需要:
$: git push <source name> <branch name>
完成以上步骤
当你 checkout public,你的 git 操作针对的是 github.com
当你 checkout private,你的 git 操作针对的是 git.mydomain.com
1 评论
阿添 2023-08-16 22:46:21