Git跨本地仓库拉取异常求助:拉取后分支内容不符
问题分析与解决方案
首先,你的拉取操作没达到预期效果,核心原因很明确:folder-a的master分支里的变更还处于「未提交」状态——Git的pull命令只能同步已经被提交到分支的版本历史,工作目录中未暂存、未提交的修改不会被Git识别为分支的一部分,自然无法被拉取到其他克隆仓库中。
接下来给你分步的正确操作流程:
第一步:先将folder-a的变更提交到master分支
在folder-a的终端中执行以下命令,把工作目录的修改正式提交到Git仓库:
# 暂存所有修改的文件 git add dataplane controlplane # 提交变更,替换引号内的内容为你自己的提交说明 git commit -m "Update dataplane and controlplane with new commits"
如果你暂时不想提交,也可以用
git stash push暂存修改,但后续需要恢复的话要执行git stash pop;不过如果是要同步这些变更到其他克隆仓库,提交是最可靠的方式。
第二步:在folder-b中拉取folder-a的master到branchx分支
根据branchx分支的状态,分两种情况处理:
情况1:branchx分支已经存在(你之前创建过)
# 切换到branchx分支 git checkout branchx # 拉取folder-a的master分支并合并到当前branchx git pull /path/to/folder-a master
情况2:branchx分支还未创建
直接创建分支并拉取folder-a的master内容:
# 创建并切换到branchx分支,同时拉取folder-a的master内容 git checkout -b branchx /path/to/folder-a/master
执行完以上步骤后,folder-b的branchx分支内容就会和folder-a的master分支完全一致了。
第三步:将folder-b的branchx变更合并回folder-a的master分支
如果你最终需要把folder-b中branchx的修改合并回folder-a的master分支,可以在folder-a的终端中执行:
# 直接拉取folder-b的branchx分支并合并到当前master git pull /path/to/folder-b branchx
或者先添加folder-b为本地远程仓库(方便后续多次同步):
# 添加folder-b作为本地远程仓库 git remote add folder-b /path/to/folder-b # 拉取folder-b的所有分支 git fetch folder-b # 合并folder-b的branchx到master分支 git merge folder-b/branchx
内容的提问来源于stack exchange,提问作者Reddy Bhavani Prasad
相关产品推荐
相关产品推荐

