我在git repo中添加了一些文件。然后我添加了一个目录并将它们移动到那里。然后我使用git add
这是什么意思告诉我?
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: newDir/TMXParser.c
new file: newDir/Tilemap.c
new file: newDir/test.xml
new file: newDir/tileImage2.png
new file: TMXParser.c
new file: Tilemap.c
new file: test.xml
new file: tileImage2.png
Changed but not updated:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: TMXParser.c
deleted: Tilemap.c
deleted: test.xml
deleted: tileImage2.png
Untracked files:
(use "git add <file>..." to include in what will be committed)
.DS_Store
如果我提交,文件是否会被添加两次?如何从终端删除此.DS_Store?
答案 0 :(得分:5)
正确的方法是使用git mv
将文件移动到目录中;就目前而言,你可以简单地git rm
。你告诉git你希望将文件复制到子目录中。在git rm
之后,git status
的输出会告诉您git想要将文件移动到子目录中。
快捷方式是git add -u
,它会通知git已修改或删除的文件。但它不会添加新文件。如果重命名文件,通知git的最简单方法是git add -A
,它会查看已修改,已删除和未跟踪的文件。它将删除您删除的四个文件并添加.DS_Store文件。
隐藏.DS_Store
文件的最佳方法是全局忽略它:
git config --global core.excludesfile '~/.gitignore'
echo .DS_Store >> ~/.gitignore
答案 1 :(得分:0)
文件正在添加一次。在newDir文件夹中。什么被删除了它的git对根目录中的文件的引用。
要删除.DS_Store,请创建一个名为.gitignore的文件,并在其中添加一行“.DS_Store”(不带引号)。
可能你想'git add'。并且只会添加所有文件更改,然后'git commit -m“我的消息”'
答案 2 :(得分:0)
此输出告诉您下一次执行git commit
时会有一堆新文件,其中一些在newDir中,还有一些在您的顶层目录中。
然后,根目录中有一些文件已被删除。您可以git add -u
然后git commit
提交更改。
如果您只是移动了这些文件而没有修改它们,那么您可以执行这两个步骤,git会自行弄清楚这些文件已被移动。
你有一个git对.DS_Store一无所知的文件(你应该把它添加到.gitignore中。