如何不在git中添加某些文件

如何不在git中添加某些文件,git,Git,我克隆了一个repo,并对只属于我的dev环境的文件进行了一些更改。所以,我不希望这些文件被添加或推送。我将对我确实希望推送的各种其他文件进行一些更改 我该怎么处理这个案子 我应该将这些文件添加到gitignore中吗?通常我为所有更改创建一个新分支,然后执行git add.。但在这种情况下,这意味着所有文件都将被签入 是的,您可以将这些文件添加到.gitignore中。这非常简单,只需在.gitignore中添加文件名/路径,它就会为您处理 你可以做的另一件事是代替git add-A或git

我克隆了一个repo,并对只属于我的dev环境的文件进行了一些更改。所以,我不希望这些文件被添加或推送。我将对我确实希望推送的各种其他文件进行一些更改

我该怎么处理这个案子


我应该将这些文件添加到gitignore中吗?通常我为所有更改创建一个新分支,然后执行
git add.
。但在这种情况下,这意味着所有文件都将被签入

是的,您可以将这些文件添加到
.gitignore
中。这非常简单,只需在
.gitignore
中添加文件名/路径,它就会为您处理

你可以做的另一件事是代替
git add-A
git add。
是你可以做
git add-i

这个有用的命令为您提供了一个菜单,专门允许您在添加任何文件之前定制要推送到git/track的内容。有关如何执行此操作的更多信息,请参见此处的“交互模式”:


但是,如果您永远不想跟踪这些文件,那么最好将它们放在
.gitignore
中,而不是每次提交时都要检查您正在跟踪/未跟踪的内容。

我看到了两种方案

选项1-使用
.gitignore
如果您没有太多的更改,我会使用此选项,但即使如此,您也可能需要处理不更改回购协议的
.gitignore
文件的问题,如下所述:

选项2-创建第二个本地“原始”回购 如果您正在使用一个非平凡的应用程序(涉及数据库连接、密码、调试等),并且希望在不担心向上游repo发送无关代码的情况下自由工作,那么您可以创建第二个本地repo,其唯一目的是保存要发送到主repo的提交快照。
创建第二个“原始”本地回购协议

git clone https://github.com/user_name/project_name.git pristine/
一旦您准备好将工作发送到主上游或原始,您可以将开发/脏回购作为远程添加到原始,并从原始中获取工作。
git cherrypick
有助于组织事情

(从原始回购文件夹)将“脏”回购添加为远程:

git remote add dirty file:///path/to/your/repo
把你要推的东西拿来

git fetch dirty/<branch>

是的,可能是你的副本。这就是
.gitignore
文件的发明目的。不过,这只是为了他的盒子。将它们添加到每个人的
.gitignore
中是没有意义的。这取决于情况,并且有一个本地的.gitignore。我没告诉他把它加入到每个人的节目中那么
.gitignore
被提交到存储库,这意味着每个人都可以访问它。你可以配置一个全局的
.gitignore
,从一个名称相似但位置不同的文件中读取,但是已经有一种机制可以用来完成同样的事情。啊,好的,我明白你的意思了。但如果他不想推送这些文件是有原因的,那么其他人也不应该想推送它们。这取决于情况如何。我们只是在做不同的假设。但是,如果您是正确的,并且其他人希望看到这些文件,那么将它们放在.gitignore中是不对的,您是对的。但是如果这些文件永远都不应该被跟踪(我是如何解释的),那么最好将它们放在.gitignore中,这就是我想要的;一种在本地忽略文件而不将其放入全局
.gitignore
的方法。
git push origin