2015-08-18 26 views
13

我有一个名为“www”的子目录,这是一个回购协议:移动git的回购父目录

site 
|-- www/ 
| |-- .git/ 
| |-- index.html 
|-- design/ 
| |-- images.jpg 

我想回购更改到父目录,以便回购结构反映原文件结构如下:

site 
|-- .git/ 
|-- www/ 
| |-- index.html 
|-- design/ 
| |-- images.jpg 

可以这样做吗?那么将变更推向Gitlab有什么意义?

+0

我想你可以将.git /目录移动到一个目录(或两个目录)上。这将是昂贵的,第一次提交会很有趣,但它应该工作。 (基于这个问题的第二个答案http://stackoverflow.com/questions/1918111/my-git-repository-is-in-the-wrong-root-directory-can-i-move-it-instead-of ) – mrcheshire

+0

@mrcheshire使用'git mv'给了我一个致命的错误,说目标目录“在仓库之外”。 – RGilkes

+0

只需使用'mv'。然后'git add -A','git commit -a' – maackle

回答

12
  1. 在您的回购中创建一个www目录。
  2. git mv HTML文件到该目录。可选提交此步骤。
  3. mv将设计目录放入您的回购库中,并且git add .
  4. 提交。
  5. 重命名/移动您的整个回购。
+0

完美工作。这样一个简单的解决方案! – RGilkes

3

以下说明将起作用。

cd www 
mv .git ../ 
git add www 
git commit -a -m "Change root directory of project" 
git add design/* 
git commit -m "Start tracking design folder" 

这将保留您的历史。