如何在git中添加某些文件

时间:2015-01-30 01:56:59

标签: git

我克隆了一个repo并对仅属于我的开发环境的文件进行了一些更改。所以,我不想要添加或推送这些文件。我将对我想要推送的各种其他文件进行一些更改。

我该如何处理这个案子?

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

2 个答案:

答案 0 :(得分:0)

我看到这个场景的两个选项

选项1 - 使用.gitignore

隐藏您的更改

如果您没有太多的更改,我会使用此选项,但即便如此,您可能还需要处理不更改repo的.gitignore文件的问题,如下所述:
How to ignore files only locally in git?

选项2 - 创建第二个本地“原始”仓库

如果您正在处理一个非平凡的应用程序(包括数据库连接,密码,调试等)并希望自由工作而不必担心向上游存储库发送无关代码,您可以创建第二个本地存储库,其唯一的目的是保存您要发送到主回购的提交快照 创建第二个“原始”本地回购

git clone https://github.com/user_name/project_name.git pristine/

准备好将工作发送到主要的上游或原点后,您可以将开发/脏回购添加为原始的远程数据库并从中获取工作。
git cherrypick可能有助于让事情井然有序。

(从pristine repo文件夹中)将“脏”仓库添加为远程:

git remote add dirty file:///path/to/your/repo

获取您想要推送的作品

git fetch dirty/<branch>

(一旦你对变化感到满意)推送到主要上游

git push origin

答案 1 :(得分:-1)

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

您可以做的另一件事是git add -Agit add .而不是git add -i

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

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