我在理解基本的 git 概念时遇到了一些麻烦:/
在我的 git 控制的站点上尝试一些东西之前,我正在我的本地 Windows 机器上进行测试。
我有:
gittesting/repo1:
file.txt
ignoreme:
ignore.txt
和
gittesting/repo2
file.txt
ignoreme:
ignore.txt
Repo2 是 repo1 的副本,并且已经在跟踪 ignoreme。ignore.txt 文件在 repo2 中发生了更改,但我想停止跟踪它并让 git 完全忽略它。问题是,如果我创建一个 .gitignore 文件并添加 ignoreme,为时已晚,因为它已经被跟踪,所以我必须执行 git rm --cached ignore,但随后它被标记为已删除,如果我将提交拉到repo1,该目录将被删除而不是被单独留下..
把它们加起来:
- ignore.txt 在两个 repos 之间有不同的内容。
- 我希望 ignore.txt 内容保持原样并被 git 完全忽略
我在网上查看,在 IRC 中询问,并查看了非常相关的问题,但找不到这样做的方法。我知道这个例子看起来微不足道,但这正是我需要在我的网站上做的,而目录是 Forum/cache。
编辑:
这有点骇人听闻,我更喜欢更好的答案,但我最终做了:
cd repo2
echo "ignoreme" > .gitignore
echo "ignoreme/*" > .gitignore
git rm --cache -r ignoreme
git commit -m "Should ignore now"
cd ../repo1
mv ignoreme ignoreme2
git pull ../repo2
mv ignoreme2 ignoreme