在合并期间,我的git存储库中会检查一些.orig文件,这些文件现在显示在已修改和未跟踪的扇区中。但我不想在我的存储库中存在这个文件。怎么做。
modified: Gemfile.lock.orig
# modified: Gemfile.orig
# modified: app/assets/images/bg_required.png.orig
# modified: app/assets/javascripts/application.js.orig
etc...
任何帮助将不胜感激。
答案 0 :(得分:204)
在这种情况下,最好的解决方案是保持简单并摆脱那些独立于git的文件:
cd /your/repo/directory
find . -name '*.orig' -delete
答案 1 :(得分:140)
答案 2 :(得分:67)
你可以这样做:
git config --global mergetool.keepBackup false
答案 3 :(得分:4)
您可以使用.gitignore
忽略文件只需将* .orig放在列表中,如此处所示
https://help.github.com/articles/ignoring-files
删除当前文件,您可以创建shell脚本并从项目文件夹运行,如下所示
for file in `find *.orig -type f -print`
do
echo "Deleting file $file"
git rm $file -f
done
答案 4 :(得分:3)
不幸的是import csv
with open('chicago.csv') as chicago_data:
csvReader = csv.reader(chicago_data, delimiter=',')
for row in csvReader:
print(row[0])
对我不起作用,因为我已将git clean
添加到我的全局gitignore文件中,因此他们也会从干净中忽略。即使正在运行*.orig
也不行,因为我不希望所有被忽略的文件被删除。 git clean -x
很有帮助,但我真的不想审核每个文件。
但是,我们可以使用排除模式并取消匹配。使用此命令预览:
git clean -i
然后,当您有信心时,请传递git clean -e '!*.orig' --dry-run
标志以真正删除它们:
force
答案 5 :(得分:2)
git rm Gemfile.lock.orig
以及你不需要的其他文件。
git commit --amend
要彻底清除这些斑点,
git gc --prune=0 --aggressive
答案 6 :(得分:1)
对我来说git clean -f
删除了所有* .oig文件。并保留以前已存在的那些。
这是合并后的(差不多)样子:
$ git status
On branch feature/xyz
Your branch is ahead of 'origin/feature/xyz' by 568 commits.
(use "git push" to publish your local commits)
Untracked files:
(use "git add <file>..." to include in what will be committed)
.idea/codeStyles/
.idea/misc.xml.orig
合并之前 .idea/codeStyles/
已作为未跟踪文件存在。 <{1}}(还有更多)必须删除。
=&GT;使用.idea/misc.xml.orig
:
git clean -f
导致:
$ git clean -f
Removing .idea/misc.xml.orig
答案 7 :(得分:0)
您可以使用预提交挂钩自动执行此过程。为此,只需进入项目文件夹,然后搜索隐藏的文件夹.git
。
在其中,您会找到hooks
目录,将其打开并创建一个名为pre-commit
的文件,其下一个包含:
echo "Looking for .orig files to remove"
pwd=$(pwd)
find . -name '*.orig' -delete
echo "Done removing .orig files"
现在,它将始终在提交某些内容之前清除orig文件,因此无需将其保留在gitignore中。
答案 8 :(得分:-1)
你可以做git status -s | grep "\.orig$" | awk '{print $2}' | xargs -n1 -r echo rm
TL; DR;
git status -s
允许您获取有关索引
grep "\.orig$"
过滤掉文件,以&#34; .orig&#34;
awk '{print $2}'
列出文件名(跳过git信息,例如A,M,??)
xargs -n1 -r echo rm
打印删除每个参数的命令(-n1:一次一个,-r:空时跳过)只需复制并粘贴命令,双重检查要删除的文件。
答案 9 :(得分:-5)