有一个文件被跟踪git,但现在该文件在.gitignore列表中.
但是,该文件在git status编辑后会一直显示.你怎么强迫git完全忘掉它?
我克隆了一个包含一些.csproj文件的项目.我不需要/喜欢我的本地csproj文件被Git跟踪(或者在创建补丁时被提起),但显然它们在项目中是必需的.
我已添加*.csproj到我的LOCAL .gitignore,但文件已经在repo中.
当我输入git status时,它会显示我csproj对跟踪或提交补丁不感兴趣的更改.
如何从我的个人仓库中删除这些文件的"跟踪"(但是将它们保存在源代码中以便我可以使用它们)以便在我执行状态(或创建补丁)时看不到更改?
是否有正确/规范的方法来处理这种情况?
我可以在本地忽略文件而不会污染其他人的全局git配置吗?我在我的git状态下没有跟踪文件是垃圾邮件,但我不想为我在本地分支机构中的每个小随机未跟踪文件提交git配置更改.
你Git忽略观察/跟踪特定目录/文件的方式.你刚刚运行这个:
git update-index --assume-unchanged <file>
现在你如何撤消它,以便再次观看它们?(我们称之为取消.)
我在我的机器上设置了一个本地git.当我初始化git时,我添加了预编译的库和二进制文件.但是,现在在开发过程中,我不想间歇性地检查这些文件.我不想从repo中删除这些文件.在完成开发之前,有没有办法不跟踪这些文件.(我想我不能使用.gitignore,因为它仅适用于那些不在git中的文件.我想暂时禁用文件跟踪.)
我团队中的每个开发人员都有自己的本地配置.该配置信息存储在一个文件中,该文件devtargets.rb在我们的rake构建任务中使用.不过,我不希望开发人员破坏对方的devtargets文件.
我的第一个想法是将该文件放在.gitignore列表中,以便它不会被提交给git.
然后我开始想知道:是否可以提交文件,但忽略对文件的更改?所以,我会提交一个默认版本的文件,然后当开发人员在本地机器上更改它时,git会忽略这些更改,当你执行git status或git commit时它不会显示在已更改文件列表中.
那可能吗?这肯定是一个很好的功能......
Visual Studio 2015创建一个名为".vs"的新文件夹.它的目的是什么,我应该将它添加到源代码管理中吗?
我在CodeIgniter站点中有几个文件,我希望在repo中有这些文件但不跟踪任何更改.
例如,我将此框架的新安装部署到新客户端,我希望下载以下文件(它们具有默认值CHANGEME),我只需要对此客户端进行特定更改(数据库凭据,电子邮件地址信息,自定义CSS).
// the production config files i want the files but they need to be updated to specific client needs
application/config/production/config.php
application/config/production/database.php
application/config/production/tank_auth.php
// index page, defines the environment (production|development)
/index.php
// all of the css/js cache (keep the folder but not the contents)
/assets/cache/*
// production user based styling (color, fonts etc) needs to be updated specific to client needs
/assets/frontend/css/user/frontend-user.css
Run Code Online (Sandbox Code Playgroud)
目前如果我跑
git clone git@github.com:user123/myRepo.git httpdocs
Run Code Online (Sandbox Code Playgroud)
然后编辑上面的文件,一切都很棒.直到我发布修补程序或补丁并运行git pull.然后我的所有更改都会被覆盖.
更新gitignore文件后是否可以"刷新"git存储库?
我刚刚向我的gitignore添加了更多的ignorations(?),并希望删除与新文件匹配的repo中的内容.
更新:从Git 1.8.3开始,这将更直观地工作,请参阅我自己的答案.
想象一下以下用例:我想摆脱我的Git工作树的特定子目录中的所有更改,保留所有其他子目录.
我可以git checkout .,但git checkout.添加稀疏结帐排除的目录
有git reset --hard,但它不会让我为子目录这样做:
> git reset --hard .
fatal: Cannot do hard reset with paths.
Run Code Online (Sandbox Code Playgroud)
再说一遍:为什么git不能通过路径进行硬/软复位?
我可以使用反向修补当前状态git diff subdir | patch -p1 -R,但这是一种相当奇怪的方法.
什么是适合此操作的Git命令?
下面的脚本说明了这个问题.在How to make files注释下面插入适当的命令- 当前命令将恢复a/c/ac应该由稀疏检出排除的文件.请注意,我不希望明确恢复a/a和a/b,我只"知道" a,并希望下面恢复一切.编辑:我也不"知道" b,或者与其他目录位于同一级别a.
#!/bin/sh
rm -rf repo; git init repo; cd repo
for f in a b; do …Run Code Online (Sandbox Code Playgroud)