使用git,在命令行中从提交中临时排除已更改的跟踪文件

使用git,在命令行中从提交中临时排除已更改的跟踪文件,git,Git,我在git中有一个跟踪的数据库(已添加)文件。我希望此文件在我的git存储库中始终包含相同的数据。即使我为了测试目的在工作副本(本地沙盒)中修改它 使用git,如何从提交中排除工作副本上的此更改文件 将此文件添加到您的回购协议中 承诺 将其添加到.gitignore文件 提交.gitignore文件 如果不执行git commit-a,git commit将只提交使用git add显式添加到索引中的文件,只需不使用git add添加它,而是添加任何其他要提交的文件 然后使用git commit而

我在git中有一个跟踪的数据库(已添加)文件。我希望此文件在我的git存储库中始终包含相同的数据。即使我为了测试目的在工作副本(本地沙盒)中修改它

使用git,如何从提交中排除工作副本上的此更改文件

  • 将此文件添加到您的回购协议中
  • 承诺
  • 将其添加到
    .gitignore
    文件
  • 提交
    .gitignore
    文件

  • 如果不执行
    git commit-a
    git commit
    将只提交使用
    git add
    显式添加到索引中的文件,只需不使用
    git add
    添加它,而是添加任何其他要提交的文件


    然后使用
    git commit
    而不是
    git commit-a

    忽略已提交的某些文件的方法是

    git update-index --assume-unchanged file
    
    但是,这是一个本地设置,克隆时不会传播


    它的效果被git update index取消了——不假设gui没有改变

    更聪明的方法是根本不直接跟踪数据库。跟踪一个示例数据库,然后每个开发人员都可以复制和修改它,并且可以将其置于gitignore下。

    除了使用git add之外,我建议使用具有更多功能的shell,即。在这里,您可以插入扩展的globbing,比如
    *~*.o(.)
    ,这意味着除了以
    o
    结尾的文件之外的所有文件。这使得添加除一个文件之外的所有文件变得更容易。Zsh还允许您设置全局别名:
    别名-g AF=“*~*.o(.)”
    。因此,您可以键入
    git add AF
    ,它将以正确的方式展开。

    这让我头疼,但可能比我的建议更优雅。此解决方案不起作用,因为文件已被跟踪,是吗?-1。这根本不起作用。该文件在修改后仍显示在
    git status
    中。但是,要记住哪些文件应该添加,哪些文件不应该添加,这很繁琐。可能重复:-1。没有帮助。无论如何,有时你不能这样做,因为外部框架在构建过程中修改文件,不能同时生成它。如果我的文件被跟踪,那是因为它应该被跟踪。。。只是我不想在测试级别上传播我所做的更改。这是一个本地设置,这正是我想要的为什么
    gui
    而不是
    file