首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将git存储库移动到另一个目录中,并使该目录成为git存储库?

如何将git存储库移动到另一个目录中,并使该目录成为git存储库?
EN

Stack Overflow用户
提问于 2013-09-30 22:49:23
回答 5查看 194.7K关注 0票数 138

我有一个gitrepo1目录。这个目录是一个git存储库。

newrepo.

  • Directory gitrepo1.

  • Directory
  • 我想将此gitrepo1移到另一个目录newrepo应该是不丢失git历史的新git存储库,并且应该包含目录gitrepo1现在应该只是一个目录(在newrepoE219中),没有任何D20索引,即它不再是独立的git存储库或子模块。H221

我该怎么做呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-09-30 22:50:38

这很简单。Git并不关心其目录的名称。它只关心里面是什么。所以你可以简单地这样做:

代码语言:javascript
运行
复制
# copy the directory into newrepo dir that exists already (else create it)
$ cp -r gitrepo1 newrepo

# remove .git from old repo to delete all history and anything git from it
$ rm -rf gitrepo1/.git

请注意,如果存储库很大,并且具有很长的历史记录,则副本的成本会很高。你也可以很容易地避免它:

代码语言:javascript
运行
复制
# move the directory instead
$ mv gitrepo1 newrepo

# make a copy of the latest version
# Either:
$ mkdir gitrepo1; cp -r newrepo/* gitrepo1/  # doesn't copy .gitignore (and other hidden files)

# Or:
$ git clone --depth 1 newrepo gitrepo1; rm -rf gitrepo1/.git

# Or (look further here: http://stackoverflow.com/q/1209999/912144)
$ git archive --format=tar --remote=<repository URL> HEAD | tar xf -

一旦创建了newrepo,放置gitrepo1的目标就可以放在任何地方,如果需要的话,甚至可以放在newrepo中。它不会改变过程,只会改变你写回gitrepo1的路径。

票数 138
EN

Stack Overflow用户

发布于 2020-02-23 12:35:51

它甚至比这更简单。我只是做了这件事(在Windows上,但它应该可以在其他操作系统上工作):

  1. Create newrepo.
  2. Move gitrepo1 into newrepo.
  3. Move gitrepo1 from newrepo.
  4. Move.git to gitrepo1 to newrepo (up one newrepo changes (根据需要修复跟踪)。

Git只看到你添加了一个目录并重命名了一堆文件。没什么大不了的。

票数 24
EN

Stack Overflow用户

发布于 2020-07-16 20:48:42

我不是专家,但我会将.git文件夹复制到一个新文件夹中,然后调用:git reset --hard

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19097259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档