这是我的预提交钩子:
holder.likeButton.setBackgroundColor(Color.WHITE);
holder.likeButton.setOnClickListener(new View.OnClickListener() {
ValueAnimator buttonColorAnim = null;
@Override
public void onClick(View v) {
if(buttonColorAnim != null){
buttonColorAnim.reverse();
buttonColorAnim = null;
//here i will update the database
}else{
final Button button = (Button) v;//here is the line I dont undestand
buttonColorAnim = ValueAnimator.ofObject(new ArgbEvaluator(), Color.RED, Color.WHITE);
buttonColorAnim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animator) {
// set the background color
button.setBackgroundColor((Integer) animator.getAnimatedValue());
}
//here i will update the database
});
buttonColorAnim.start();
}
}
});
这是git commit的输出:
#!/bin/sh
echo "removing file.txt"
rm file.txt
exit 0
为什么它会识别file.txt?是因为它没有包含在gitignore中吗?
答案 0 :(得分:1)
如果您已经将文件添加到过去的git 将跟踪,直到您告诉它不要=删除它。
.gitignore
在这种情况下无法帮助您,因为它已被跟踪过。
你必须这样做:
# remove it from the index and commit it
git rm --cached <file.txt>
现在将其添加到.gitignore并提交它。
答案 1 :(得分:1)
我不确定动词是什么意思识别,但这里的主要问题是Git不会从工作树进行提交。 Git从索引提交提交。
当您git add file.txt
时,会将file.txt
的内容从工作树复制到索引中。如果文件file.txt
之前没有出现在索引中,它现在就会出现。如果以前在索引中 ,则旧索引内容现在将替换为工作树file.txt
中的任何内容。
当您运行git commit
时,它会立即索引中的任何内容并将其转换为提交。在预提交钩子中,您修改工作树,但不修改索引 - 因此索引保持原样,文件进入提交。
答案 2 :(得分:1)
如果您要将文件添加到.gitignore
,除非您强制将其添加到索引中,否则我想您希望将其添加到.gitignore
。如果您仍希望通过pre-commit
挂钩执行此操作,则应从索引中删除该文件,而不是工作树,因此请在git rm --cached --ignore-unmatch -- file.txt
挂钩中使用rm file.txt
而不是pre-commit
从索引中删除文件(如果存在),而不是从工作树中删除它。