【问题标题】:How to avoid to add the target folder into a GIT commit?如何避免将目标文件夹添加到 GIT 提交中?
【发布时间】:2017-10-25 02:47:40
【问题描述】:

我对 GIT 不太感兴趣,但我有一个疑问。

我有一个由这些文件夹和文件组成的项目:

$ ls
bin/  lock.lck  pom.xml  src/  target/

我知道这样做:

git add .

我在暂存区添加所有文件,所以如果我提交并推送我的远程存储库,我将把这个存储库也放在 target 文件夹中。

我想避免这种情况。

如何避免添加、提交和推送 terget 文件夹?

【问题讨论】:

标签: git version-control git-commit git-push git-add


【解决方案1】:

移动到与.git文件夹并行的项目根目录,创建.gitignore文件并复制以下内容:

target/

【讨论】:

    【解决方案2】:

    向 .gitignore 添加一个项目,这样 git 就不会关注它(如果文件尚未添加到以前的修订版中)。

    【讨论】:

    • 这个 .gitignore 文件的正确位置是什么?
    【解决方案3】:

    将要忽略的文件路径添加到 .gitignore 文件中。

    例子:

    *.class
    target
    .classpath
    .settings
    

    https://git-scm.com/docs/gitignore

    【讨论】:

    • 我应该把这个 .gitignore 文件放在哪里?在我项目的主文件夹中?应该包含什么?像 terget/ 之类的东西?还是什么?
    • .gitignore 可以放在项目的根目录下,但我也认为它可以放在项目内的其他目录中(在这种情况下,每个目录都适用于设置它的目录和子目录) .你把你希望 git 不跟踪的模式的行放在那里:例如:``` *.class *.log target ```
    • 好的,但是当我执行 git add 时,我必须指定使用这个 .gitignore 设置。还是自动的?
    • 如果您在添加文件后将内容添加到 .gitignore 中,则它不起作用。它只是一个纯文本文件。将项目添加到 .gitignore,然后尝试添加。 git 应该跳过你在 .gitignore 中设置的那些项目
    • @Ershany 我编辑了你的答案,却没有注意到它不是我的答案。我会留下它,因为我认为它可以被视为一种扩展。对此感到抱歉。
    【解决方案4】:

    如果您不想将target 文件夹添加到提交中,则应将该文件夹添加到.gitignore.gitignore 文件通常在 git repo 的根路径中创建。您可以使用以下方式创建.gitignore 文件,而忽略target 文件夹:

    touch .gitignore
    echo target >> .gitignore
    # If you committed files and subfolders of target in git, use below commits
    git rm 1/* --cached -r
    git commit -m 'remove target in version control'
    

    现在target文件夹被git完全忽略了,它不会在git中提交。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-09
      • 1970-01-01
      • 2019-02-04
      • 1970-01-01
      • 2016-10-08
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多