我从备份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)
让我感到惊讶的是,app
和lib
(都是文件夹)被标记为已修改内容,并且未提交进行提交。我尝试在git add --force
,*
和app
上投放lib
,但似乎没有改变任何内容。
我不想提交我的代码并将这些文件夹从存储库中排除。我该如何解决这个问题?
答案 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