我第一次使用git,已经将我的分支推送到github,并将所有库和文档都推送到了github上。现在我该怎么做,如何使用gitignore命令避免再次犯同样的错误。
根据您所说,这些文件是库/文档,您不想删除但也不想推送到github
。假设您的项目位于文件夹your_project
中,并有一个文档目录:your_project/doc
。
git rm --cached doc/*
.gitignore
,可以在项目文件夹内创建一个:project/.gitignore
。doc/*
添加到 .gitignore 文件中。git add project/.gitignore
git commit -m "message"
.github
。
touch .gitignore
然后运行此命令将要忽略的文件路径添加到你的 gitignore 文件中:
```gitignore ```echo 'application/cache' >> .gitignore
注意换行
echo
在输出末尾添加一个换行符。您可以使用-n
来停止它。如果您需要多个忽略项,请执行多个echo
或使用-e
,如下所示:echo -e "**/cache/\n**.pyc" >> .gitignore
。双星号匹配递归地深入文件夹中的所有文件。在文件夹末尾使用“/”,以防万一。 - mazunkiecho "file_to_be_ignored" >> .gitignore
将每个被忽略的文件添加到 .gitignore 中,无需进行其他操作。将文件夹名称以 /
结尾,例如 echo "**/modules/" >> .gitignore
。 - mazunkigit ignore是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将重新播放您的历史记录,停止在每个使用e标记的提交处。在这里,您可以删除不想要的文件,git add -A
,然后git rebase --continue
,直到完成。您的历史记录将变得干净。请确保告诉同事,因为您需要强制推送,并且他们需要重新进行尚未推送的变基操作。
在你的git根目录中有一个名为.gitignore
的文件。它是一个文件,而不是一个命令。你只需要插入要忽略的文件的名称,它们就会自动被忽略。例如,如果你想忽略所有以~
结尾的emacs自动保存文件,那么你可以添加这一行:
*~
git add -A
,它会"移除不再工作树中的文件"。git init
的目录,也是你可以找到.git
目录的地方。touch .gitignore
您可以通过在.gitignore文件中输入以下命令来排除一个文件夹:
/folderName
有几种方法可以在git中使用gitignore
只需创建一个.gitignore文件并写入您想要忽略的内容即可。 一个样本的gitignore文件可能是:
# NPM packages folder.
node_modules
# Build files
dist/
# lock files
yarn.lock
package-lock.json
# Logs
logs
*.log
npm-debug.log*
# node-waf configuration
.lock-wscript
# Optional npm cache directory
.npm
# Optional REPL history
.node_repl_history
# Jest Coverage
coverage
.history/
在我的Mac电脑上,我找到了这个文件.gitignore_global
,它在我的主目录下被隐藏了,所以执行ls -altr
命令来查看它。
我添加了我想要Git忽略的Eclipse文件。内容如下:
*~
.DS_Store
.project
.settings
.classpath
.metadata
如此链接所述,您可以将“.gitignore”文件添加到项目的根目录中,并在其中添加所有文件或文件夹名称。 (在我的情况下,C#项目忽略了文件和文件夹)
注意:Git默认会忽略此文件。
.gitignore
是你的 git 根目录中的一个文件。添加要忽略的文件名模式,这些文件将自动被忽略。 - LonelyWebCrawlergit init
的目录。.git
目录位于那里。 - LonelyWebCrawler