我有时会git commit -amend
在我真正想要的时候不小心打字git commit --amend
.Git检测到并问我
$ git commit -amend
error: did you mean `--amend` (with two dashes ?)
Run Code Online (Sandbox Code Playgroud)
这很棒.
但是,有时我会写git commit -ammend
,然后git会接受这个并将我的拼写错误视为git -a -m "mend"
,所以它只是提交日志消息"mend".
我正在寻找一种方法来阻止git这样做.我试图定义一个别名,git commit -ammend
但现在失败了.您对如何处理此问题有任何建议吗?
我想知道Read和Load之间的语义差异是什么(在C#中).比较例如,我没有看到差异
System.IO.MemoryStream.Read()
System.Console.Read()
System.IO.StreamReader.Read()
System.IO.File.ReadAllText()
VS
System.Xml.XmlDocument.Load()
System.Xml.Linq.XDocument.Load()
System.Reflection.Assembly.Load()
因为我希望对我的程序进行一致的命名,只需从持久存储中获取文件以及初始化,交叉引用和错误检查的更高级别函数,我请求您提供输入.
可以在运行时使用.Net属性Debugger.IsAttached来检测是否附加了调试器.这意味着当附加调试器时,此属性可用于具有不同的行为.我可以轻松地提出示例,说明为什么不使用这个属性(因为程序很难调试)但我很难找到一个使用它似乎合法的例子.
您是否有使用Debugger.IsAttached是明智的选择?
Visual Studio 抱怨每次编译
warning MSB8029: The Intermediate directory or Output directory cannot reside under the Temporary directory as it could lead to issues with incremental build.
我正在检查项目并更改了输出目录和中间目录,但我仍然收到解决方案中每个项目的消息。
我怎样才能解决这个问题?
我有一个奇怪的问题,Asserts被忽略了.您可以使用此最小示例重现它.我想知道为什么会出现这个问题以及如何面对它:
public class TestAssert
{
public string EmptyString
{
get
{
System.Diagnostics.Debug.Assert(false);
return string.Empty;
}
}
Dictionary<string, object> dict = new Dictionary<string, object>();
public void ShowAssertIgnored()
{
var foo = dict[EmptyString];
}
}
Run Code Online (Sandbox Code Playgroud)
Debug.Assert(false)
即使评估了属性,您也可以看到它被忽略.打电话吧
var test = new TestAssert();
test.ShowAssertIgnored();
Run Code Online (Sandbox Code Playgroud)
代码编译并在Debug中运行(其他断言工作正常!),32位,x86 + AnyCPU,VS2012专业,.Net Framework 4
编辑:
该项目是一个控制台应用程序,我连续几次运行它.在System.Diagnostics.Debug.Assert(false);
最常见的断点之前会出现一个消息框.但并非总是如此:当我只是多次重试相同的情况时,我有时会在控制台中看到结果.
再说一遍:我可以在VS2012调试器中重现非确定性行为!