我克隆了一个repo并对仅属于我的开发环境的文件进行了一些更改。所以,我不想要添加或推送这些文件。我将对我想要推送的各种其他文件进行一些更改。
我该如何处理这个案子?
我应该在gitignore
中添加这些文件吗?通常我会为所有更改创建一个新分支,然后执行git add .
。但在这种情况下,这意味着所有文件都将被签入。
答案 0 :(得分:0)
我看到这个场景的两个选项
.gitignore
如果您没有太多的更改,我会使用此选项,但即便如此,您可能还需要处理不更改repo的.gitignore
文件的问题,如下所述:
How to ignore files only locally in git?
如果您正在处理一个非平凡的应用程序(包括数据库连接,密码,调试等)并希望自由工作而不必担心向上游存储库发送无关代码,您可以创建第二个本地存储库,其唯一的目的是保存您要发送到主回购的提交快照 创建第二个“原始”本地回购
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 -A
或git add .
而不是git add -i
。
这个有用的命令为您提供了一个菜单,专门让您在添加任何文件之前定制要推送到git / track的内容。有关如何执行此操作的更多信息,请参见“交互模式”:http://git-scm.com/docs/git-add
但是,如果您从不想跟踪这些文件,最好将它们放在.gitignore
中,而不是每次提交时都要检查自己/不跟踪的内容。