Tag: reset

C ++ 11清除shared_ptr时,我应该使用重置或设置为nullptr?

我有一个关于C ++ 11最佳实践的问题。 清除shared_ptr时,应该使用不带参数的reset()函数,还是应该将shared_ptr设置为nullptr ? 例如: std::shared_ptr<std::string> foo(new std::string("foo")); foo.reset(); foo = nullptr; 有没有真正的区别,还是有两个方法的优点/缺点?

Git:如何在提交之间来回移动

我有一个关于Git的新手问题: 我需要在一个分支的历史中来回移动。 这意味着,我需要将所有文件都置于旧版本中的状态,然后我需要返回到存储库中的最新状态。 我不需要提交。 用SVN,这将是 svn up -r800 去修改800,和 svn up 与存储库保持同步。 我知道我想回到提交的散列,所以我试了一下 git reset <hash> 这似乎让我在那里。 但后来我试了一下 git pull 但是抱怨冲突。 那么,通过分支机构历史的正确途径是什么? 我在考虑SVN,所以不要犹豫,指向我一些很好的教程。 请注意,我已经检查http://git.or.cz/course/svn.html和http://www.youtube.com/watch?v=8dhZ9BXQgc4 。 谢谢,翁德拉

如何git重置 – 哈哈一个子目录?

更新 :这将工作更直观的Git 1.8.3,看到我自己的答案 。 想象下面的用例:我想摆脱我的Git工作树的特定子目录中的所有更改,保持所有其他子目录不变。 我可以做git checkout . ,但git结帐。 添加稀疏结帐排除的目录 有git reset –hard ,但不会让我做一个子目录: > git reset –hard . fatal: Cannot do hard reset with paths. 再说一遍: 为什么git不能通过path进行硬/软重置? 我可以使用git diff subdir | patch -p1 -R来修改当前状态 git diff subdir | patch -p1 -R ,但这是一个很奇怪的做法。 什么是这个操作适当的Git命令? 下面的脚本说明了这个问题。 在How to make files注释下面插入正确的命令 – 当前命令将恢复应该被稀疏检出排除的文件a/c/ac 。 请注意,我不想明确地恢复a/a和a/b ,我只是“知道” a并且想要恢复下面的所有内容。 […]