【问题标题】:Merge remote into local subdirectory of a git project将远程合并到 git 项目的本地子目录中
【发布时间】:2016-07-03 11:00:06
【问题描述】:

我有以下情况:本地、分叉和自定义的git项目,没有维护源的文件夹结构。

~/dwm/dwm/* and ~/dwm/dwmstatus/*是我的git项目的新结构。

我现在想将最新的源代码修补到我的本地存储库中。我git remote add http://git.suckless.org/dwm/ 并拉动。

会发生什么情况是拉忽略子目录(它应该如何知道一开始)并完全拉入~/dwm/*

问题:如何从源远程合并到 ~/dwm/dwm/* 子文件夹? 我尝试了什么:git checkout HEAD dwm/ 然后执行拉动。这并没有起到作用,因为目录已经是最新的。

【问题讨论】:

  • 如果你已经提交了你的结构修改,这应该或多或少刚刚奏效。
  • @OliverCharlesworth:我对源存储库没有任何影响。我确实分叉了它,删除了旧遥控器并用我的 github 遥控器替换了它。 github 遥控器知道我的结构修改。但源遥控器不是。还是我误解了你的提示?
  • 哦,也许我没有听从你的解释。您在远程而不是在本地克隆中进行了这些结构更改?

标签: git git-pull


【解决方案1】:

从您的描述中不清楚您采取了哪些操作顺序。但是,如果您的分叉存储库(我们称之为fork)完全领先于您的原始存储库(我们称之为original),那么将其设置为本地存储库中的新远程并从中提取应该复制了重组。

工作示例:

## Create original repo ##
git init original
cd original
echo "a" > a.txt
echo "b" > b.txt
git add .
git commit -m "Initial commit"
cd ..

## Clone the original (this is your local copy) ##
git clone original local

## Emulate fork with restructured content ##
cp -r original fork
cd fork
mkdir c d
mv a.txt c
mv b.txt d
git add .
git commit -m "Move stuff around"
cd ..

## Add the fork as a remote and pulling ##
cd local
git remote add fork ../fork
git pull fork master

【讨论】:

  • 在修改了您的解决方案一段时间后,我了解了它应该如何工作并根据我的需要进行了调整。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-10-22
  • 2015-09-29
  • 2019-11-21
  • 1970-01-01
  • 2023-03-29
  • 2012-04-20
  • 2023-03-15
  • 2021-06-10
相关资源
最近更新 更多