我是GIT的新手,面对的情况如下:
按下文件:
的index.php
$name = "steve";
echo("good morning");
echo($name);
拉出文件,然后意外删除$ name变量。
echo("good morning");
echo($name);
在没有意识到的情况下,将新代码拉出并推送到服务器。问题是代码坏了而且不再工作,GIT不会提示删除该行。无论如何要解决这种情况吗?
答案 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
仅添加应该检查的文件。