如何将未初始化Git仓库的本地源码关联远程仓库并比对版本差异
本地未初始化Git的源码关联远程仓库工作流
前置说明
全程不需要提前备份本地文件、克隆远程仓库再用本地文件覆盖,所有操作直接在现有源码目录执行即可。
操作步骤
1. 本地目录初始化Git仓库
- 进入本地源码根目录,执行初始化命令:
git init - 将本地现有源码全部提交到本地Git仓库:
git add . git commit -m "导入本地现有源码"
2. 关联远程仓库
- 关联目标远程仓库,将
<远程仓库地址>替换为实际的SSH/HTTP地址:git remote add origin <远程仓库地址> - 拉取远程仓库提交记录,允许无共同历史的仓库合并(替换
<远程分支名>为实际分支,通常为main或master):git pull origin <远程分支名> --allow-unrelated-histories如果拉取过程中出现冲突,手动修改冲突文件后执行
git add <冲突文件名>,再执行git commit即可完成合并。
3. 校验本地与远程的版本差异
- 先拉取远程最新状态到本地缓存:
git fetch origin - 执行以下命令对比版本差异:
- 查看远程是否有本地没有的提交:
git log <本地分支名>..origin/<远程分支名>,无输出代表远程没有更新的提交 - 查看本地是否有远程没有的提交:
git log origin/<远程分支名>..<本地分支名>,无输出代表本地没有更新的提交 - 查看文件级别的差异统计:
git diff --stat <本地分支名> origin/<远程分支名> - 查看具体代码差异:
git diff <本地分支名> origin/<远程分支名>
- 查看远程是否有本地没有的提交:
- 版本状态判定规则:
- 上述两个
git log命令都无输出:本地与远程版本持平 - 只有
git log <本地分支名>..origin/<远程分支名>有输出:本地版本落后于远程 - 只有
git log origin/<远程分支名>..<本地分支名>有输出:本地版本超前于远程 - 两个命令都有输出:本地和远程版本分叉,两边都有对方未收录的提交
- 上述两个
后续可选操作
- 确认本地版本无误后推送到远程:
git push origin <本地分支名>:<远程分支名> - 需要合并远程更新到本地:
git merge origin/<远程分支名>,解决冲突后提交即可完成合并
内容的提问来源于stack exchange,提问作者JKB
相关产品推荐
相关产品推荐

