如何在git中使用gitignore命令
我正在第一次在git上工作。 我把我的分支推到github上,它把所有的库和文档都放到了github中。 现在我该怎么办,如何使用gitignore命令来避免同样的错误。
所以根据你所说的,这些文件是你不想删除的库/文档,也不想推到github
。 假设你有你的项目在文件夹your_project
和一个文档目录: your_project/doc
。
- 从项目目录中删除它(不实际删除它):
git rm --cached doc/*
- 如果你还没有
.gitignore
,你可以在你的项目文件夹中做一个:project/.gitignore
。 - 将
doc/*
放在.gitignore中 - 将文件
git add project/.gitignore
到提交:git add project/.gitignore
- 提交:
git commit -m "message"
。 - 把你的改变推到
github
。
如果您没有.gitignore文件,请首先使用:
touch .gitignore
那么这个命令在你的gitignore文件中添加行:
echo 'application/cache' >> .gitignore
小心新线
在您的git根目录中有一个名为.gitignore
。 这是一个文件,而不是一个命令。 您只需插入要忽略的文件的名称,它们将自动被忽略。 例如,如果您想忽略以~
结尾的所有emacs自动保存文件,则可以添加以下行:
*~
如果你想从你的分支中删除不需要的文件,你可以使用git add -A
,它“ 删除不在工作树中的文件 ”。
注意:我所谓的“git根目录”就是第一次使用git init
的目录。 这也是你可以find.git
目录的地方。
git忽略是git中的约定。 通过.gitignore
的名称设置文件将忽略该目录中的文件以及与该文件包含的模式相匹配的更深的目录。 最常见的用法就是在顶层有一个这样的文件。 但是你可以在你的目录结构中添加更深层次的内容来忽略更多的模式,或者停止忽略它们,然后再更深层的模式。
同样,可以通过指定以!
开头的模式,将某些文件“更新”为更深层的结构或特定的子集(即忽略* .log,但仍然要跟踪important.log) 。 例如:
*.log !important.log
会忽略所有的日志文件,但会跟踪名为important.log的文件
如果您正在跟踪您要忽略的文件,请删除它们,将模式添加到.gitignore文件并添加所有更改
# delete files that should be ignored, or untrack them with # git rm --cached <file list or pattern> # stage all the changes git commit git add -A
从现在开始你的仓库不会跟踪它们。
如果你想清理你的历史,你可以
# if you want to correct the last 10 commits git rebase -i --preserve-merges HEAD~10
然后用e
标记每个提交或edit
。 保存计划。 现在git会重播你的历史logging,在你用e标记的每个提交中停止。 在这里你删除你不想要的文件, git add -A
然后git rebase --continue
直到完成。 你的历史将是清洁的。 确保你告诉你的同事,因为你将不得不推动,他们将不得不rebase什么他们没有推。
在我的Mac上,我发现这个文件.gitignore_global
..它在我的主目录隐藏,所以做一个ls -altr
看到它。
我添加了我想让git忽略的eclipse文件。 内容如下所示:
*~ .DS_Store .project .settings .classpath .metadata