为什么Git没有进行一些修改"修改"初始提交的文件夹?

时间:2014-06-25 15:32:01

标签: git erpnext

我从备份tarball收到了修改后的ERPNext旧版本的代码,我想将此代码添加到我的Ubuntu笔记本电脑上的本地Git存储库中,以便我可以跟踪更改,直到我的雇主可以托管远程存储库。假设备份已经在~/backup/erpnext/中提取,我正在尝试设置我的Git存储库以进行这样的初始提交:

cd ~
mkdir erpnext
cd erpnext
cp -r ~/backup/erpnext/* ./
git init
git add *

我认为,这应该将备份中的所有文件和文件夹添加到~/erpnext目录中,并将它们全部暂存以进行初始提交。但是,为了确保一切按预期工作,我在提交之前运行了git status并且接受了此输出:

On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   app
    new file:   conf.py
    new file:   conf.pyc
    new file:   erpnext-backup.log
    new file:   erpnext-sch.log
    new file:   lib
    new file:   public/app
    new file:   public/app.html
    new file:   public/css/all-app.css
    new file:   public/css/all-web.css
    new file:   public/js/all-app.min.js
    new file:   public/js/all-web.min.js
    new file:   public/js/editor.min.js
    new file:   public/js/slickgrid.min.js
    new file:   public/lib
    new file:   scheduler.lock

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
  (commit or discard the untracked or modified content in submodules)

    modified:   app (modified content, untracked content)
    modified:   lib (modified content, untracked content)

让我感到惊讶的是,applib(都是文件夹)被标记为已修改内容,并且未提交进行提交。我尝试在git add --force*app上投放lib,但似乎没有改变任何内容。

我不想提交我的代码并将这些文件夹从存储库中排除。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

删除这些子文件夹中的所有.git/目录。 他们可能会混淆git(有关详情,请参阅git submodules)。

(顺便说一句,你可以保留任何.gitignore个文件,因为它们有望帮助忽略特定于这些文件夹的临时文件。)

这是一个方便的命令,用于删除.git(但不是~/erpnext)的任何子目录中的所有~/erpnext/.git目录:

 find ~/erpnext/ -depth -mindepth 2 -type d -name .git -exec rm -rf \{\} \;

或者,如果您的上游项目已经是一个git存储库(带有子模块),您可能只想保留原始历史记录,继续处理原始VCS:

cd ~
rm -rf erpnext
cp -r ~/backup/erpnext .
cd erpnext
git log