我正在使用github来托管一个git存储库,我需要在某些机器中克隆该存储库(这些机器不是为了更改代码)它们仅用于保存软件代码的副本。
我使用以下命令行将远程存储库克隆到本地计算机:
git clone -b master git://github.com/jquery/jquery.git jquerylocal
当我需要同步(获取文件和新文件的更改)与最新版本的名为jquerylocal
的本地文件夹时,问题就出现了,因为我的机器添加了名为.DS_Store
的文件并给了我以下错误:
error: Your local changes to the following files would be overwritten by merge:
.DS_Store
我想说git忽略我在本地directorey中创建的所有文件,并替换为新文件并在现有文件中进行新的更改。
我也想知道怎么说git忽略一些要同步的文件夹和文件。
非常感谢。
答案 0 :(得分:5)
你想创建一个.gitignore
文件,它会指示Git完全按照你的要求行事;忽略具有某些文件名模式的文件在您的情况下,您将需要使用单行创建.Gitignore文件:
.DS_Store
这应该在你的Git存储库的根目录中。
如果您已经签入了几个.DS_Store
文件,那么您需要让Git停止跟踪它们。您可以将git rm .DS_Store
用于此目的。
答案 1 :(得分:1)
在项目的根目录中创建名为.gitignore
的文件。
编辑文件并将.DS_Store添加到该文件。该文件git add .gitignore
和git commit
。
然后git rm
所有那些.DS文件。推动您的更改。
Git Synchronization:
拉变化
git pull
推送更改
git push
您需要做的就是在远程计算机上git pull
。如果有任何冲突似乎是文件,你不应该提交,因为它们似乎是由你的构建系统自动生成的。删除任何已提交的.DS_Store文件并将其添加到.gitignore
后,您不再需要担心同步该文件,因为它将被git忽略。
答案 2 :(得分:0)
如果可以删除本地添加的.DS_Store
文件(以及任何其他本地更改),那么在提取新更改之前,您可以执行git clean。
这个问题也可以回答您的需求:How do I force "git pull" to overwrite local files?