我有一个裸仓库,用作两台电脑的原产地。
我在git中有一个当前跟踪的/ furniture /目录,我想在两台计算机上取消跟踪和.gitignore。
所有回购都会同步开始。
在计算机1上
$ git rm -r --cached furniture
成功从本地存储库中删除文件,但将它们留在我的工作树中。到目前为止都很好。
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: furniture/file1.png
deleted: furniture/file2.png
我提交此更新并推送到遥控器,然后从计算机2中取出。
但现在计算机2上工作树中的文件消失了。
选项1:通过scp在计算机2上重新创建文件夹,然后立即.gitignore在那里。
选项2:在每台计算机上使用git update-index --assume
选项3:???一个更好的方法???
似乎我应该有一个简单的方法让我告诉所有的存储库再停止跟踪文件,好像他们一直都在.gitignore文件中一样。
我所有的谷歌搜索给了我的是rm --cached是解决这个问题的方法;但它似乎并没有停止将删除命令发送到另一个回购列表&#39;工作树,即使它在计算机1上工作正常。
我错过了什么?
答案 0 :(得分:0)
您可以使用以下命令
git update-index --assume-unchanged <file>
要再次进行git跟踪更改,请执行
git update-index --no-assume-unchanged <file>
文档here