【问题标题】:I need git to include the parent directory我需要 git 来包含父目录
【发布时间】:2015-06-09 19:04:17
【问题描述】:

我有一个程序分为 3 个包。我已经在其中一个包中设置了一个本地存储库,并将其设置为推送到 gitHub 上的存储库。我已经开始研究第二个包,但我意识到我还没有用 git 初始化它。我想使用相同的 gitHub 存储库将第二个包推送到,但我不确定它是否会工作,因为我已经设置了我的第一个包来推送到它。我想我应该在三个包的父文件夹上完成 git init,然后文件夹/包结构会出现在我的 gitHub 存储库中。有没有简单的方法来解决这个问题?谢谢!

【问题讨论】:

标签: git github


【解决方案1】:

假设您的父目录名为parent,而您的子目录名为package1、package2 和package3。我们还假设package1 是您拥有 git 存储库的目录。我将另一个 package1 目录作为原始package1 目录的子目录,并将原始package1 目录的内容移动到其中。然后将package2 和package3 移动为原始package1 的子代。您可以将原始package1 重命名为父级。 git add --all . 整个事情,你现在有一个包含所有三个目录的 repo。很酷的是,您不会丢失所有移动文件的历史记录; git 足够聪明,可以检测重命名/移动。

【讨论】:

  • 谢谢!这听起来很简单。
  • 我点击了向上箭头。我还需要做什么?
【解决方案2】:

假设我们有这样的目录结构:

    A
    |
    B
    |
    .git and other files

你应该:

cd B
mkdir C
ls | grep -v '^C$' | xargs -L 1 -I '{}' git mv -r '{}' C/
ls ../ | grep -v '^B$' | xargs -L 1 -I '{}' mv ../'{}' .
git commit -am 'Change directory structure and include parent dir'

【讨论】:

  • 在没有解释的情况下将复杂的 shell 命令转储到答案中并不是很有帮助。请添加一些上下文。
猜你喜欢
  • 2014-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多