我将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中?