GIT的问题拉过了先前的代码

时间:2011-08-18 10:15:11

标签: git version-control github

我是GIT的新手,面对的情况如下:

按下文件:

的index.php

$name = "steve";

echo("good morning");
echo($name);

拉出文件,然后意外删除$ name变量

echo("good morning");
echo($name);

在没有意识到的情况下,将新代码拉出并推送到服务器。问题是代码坏了而且不再工作,GIT不会提示删除该行。无论如何要解决这种情况吗?

2 个答案:

答案 0 :(得分:0)

为了能够处理这个问题,Git需要了解您正在尝试的内容。在您的情况下,Git必须知道删除$name = "steve";文件中的.php会产生错误。

但对于只是在写文本的普通.txt文件,这可能非常好。

不是pull会覆盖之前的代码,而是。您删除了该行,您告诉Git提交该版本,您从远程仓库中提取该版本。一切顺利。

解决此类方案的最佳方法是在推送之前测试


如果经过仔细测试后仍然出现这种情况,您当然可以使用Git恢复已签入的最后一个版本并使用

工作
git checkout <SHA-HASH> -- index.php

其中<SHA-HASH>index.php的最后一个良好版本的提交ID。

答案 1 :(得分:0)

这里的解决方案是要知道你正在改变什么。在git中,这意味着使用

git diff

在将文件添加到索引之前检查已更改的代码。您还可以使用gitk查看更改。它们将显示为标记为“本地未提交的更改,未签入索引的红点”。

如果问题来自将整个文件添加到索引中,当您只想要进行某些更改时,可以使用以下方法添加单个代码块:

git add -p

这将通过各种更改的代码,并询问您是否将其添加到索引中。因此,如果您对需要签入的文件进行了一些更改,而其他文件只是用于实验或调试,则可以使用git add -p仅添加应该检查的文件。