将更改合并到存储库中,该存储库已移动到其自身的子文件夹中

时间:2018-06-21 20:02:27

标签: git repository

我将repoA的内容移到了子文件夹repoA / repoA中。 移动前的repoA克隆具有新更改,我想合并到repoA中,但我不知道如何正确执行。

以下是具有相同场景(重击)的示例-

#!/bin/bash
# creating repoA
mkdir repoA
cd repoA
git init .
echo This is repoA readme > readme.md
git add .
git commit -m "Initial commit"

# create a clone of repoA, before moving its content
git clone . ../preMoveRepoA

# moving content of repoA into a subfolder (repoA/repoA)
shopt -s extglob
mkdir repoA
git mv !(repoA) repoA
git commit -m "Moving repoA into a repoA subfolder"

# make a couple of changes to preMoveRepoA
cd ../preMoveRepoA
echo some development > someDevelopmentOnPreMoveRepoA.txt
echo some development >> readme.md
git add .
git commit -m "some development on pre-move clone of repoA"

我需要先提取repoA的更改(移动命令),然后才能将preMoveRepoA更改推入repoA。
当我尝试将repoA中的rebase或从repoA中拉出rebase到preMoveRepoA中时,readme.md的更新版本将与最新更改合并到子文件夹中。但是,由于移动操作未包含新文件someDevelopmentOnPreMoveRepoA.txt,因此该文件仍保留在根文件夹中。

如果在拉动之前尝试将preMoveRepoA移到preMoveRepoA / repoA子文件夹中,拉动似乎可以正常工作,但是推入失败,并出现以下错误:

  

远程:错误:拒绝更新已签出的分支:refs / heads / master
  remote:错误:默认情况下,更新非裸存储库中的当前分支
  remote:被拒绝,因为它会使索引和工作树不一致
  远程:与您推送的内容相同,并且需要'git reset --hard'匹配
  远程:HEAD的工作树。
  远程:
  远程:您可以设置“ receive.denyCurrentBranch”配置变量
  remote:在远程存储库中“忽略”或“警告”以允许压入
  远程:其当前分支;但是,除非您
,否则不建议这样做   远程:安排更新其工作树以匹配您在其中推送的内容
  远程:其他方式。
  远程:
  远程:要抑制此消息并仍然保留默认行为,请设置
  remote:将“ receive.denyCurrentBranch”配置变量设置为“ refuse”。

有什么方法可以将preMoveRepoA中的更改合并到repoA中?

0 个答案:

没有答案
相关问题