使用本地配置“克隆”Git仓库的正确方法
解决方案
方案一:改进手动初始化流程,建立分支关联
在你现有步骤的基础上,添加分支关联命令,让本地分支自动绑定远程分支,后续git push无需指定参数:
- 创建并进入目标目录
- 初始化仓库并指定默认分支:
git init -b {branch} - 设置本地凭证管理器配置:
git config --local credential.helper "你的自定义凭证管理器命令" - 添加远程仓库:
git remote add origin {url} - 拉取远程分支的最新提交(仅获取,不合并):
git fetch origin {branch} - 建立本地分支与远程分支的关联:
git branch --set-upstream-to=origin/{branch} {branch} - 合并远程分支到本地:
git pull - 若存在子模块,执行:
git submodule update --init --recursive
完成后,执行git push即可直接推送当前分支,无需额外指定--set-upstream参数。
方案二:用git clone直接实现(更简洁)
通过git clone的-c参数,在克隆时直接将凭证配置写入本地仓库配置(而非全局),既保留git clone的完整效果(自动关联分支、支持子模块递归克隆),又避免全局配置冲突:
基础克隆命令(无子模块)
git clone -b {branch} -c credential.helper="你的自定义凭证管理器命令" {仓库URL} {目标目录}
带递归子模块的克隆命令
git clone -b {branch} --recursive -c credential.helper="你的自定义凭证管理器命令" {仓库URL} {目标目录}
说明
-c参数会将指定的配置直接写入克隆后仓库的.git/config文件,完全属于本地仓库配置,不会影响全局或其他任务的Git配置。如果需要设置多个本地参数,可多次使用-c key=value。
内容的提问来源于stack exchange,提问作者TheRoadrunner
相关产品推荐
相关产品推荐

