有一次,我的git存储库重新组织了它的路径.
我经常想在移动前对修订版的文件负责.
什么是git责备咒语责备当前存储库中不存在的文件?
我试过了:
> git blame new/path/to/file old_rev
fatal: no such path ... in old_rev
> git blame old/path/to/file old_rev
fatal: cannot stat path ... in old_rev
> git blame old_rev:old/path/to/file old_rev
fatal: cannot stat path ... in old_rev
Run Code Online (Sandbox Code Playgroud)
显然,我可以查看old_rev并指责相应的路径,但我宁愿避免这种情况.
我正在审查一个能够解决很多问题的补丁,添加了一些东西,并删除了一些东西.我想知道是否有人编写了一个实用程序,用于在通用差异中挑选出独特的添加/删除功能?
也就是说,添加和删除相同的行应该取消它们自己.
显然这并不是一直有用,但有时它正是我想要的:)
我注意到卷曲可以判断我是否重定向其输出(在这种情况下,它会显示进度条).
有没有合理的方法在Python脚本中执行此操作?所以:
$ python my_script.py
未重定向
$ python my_script.py> output.txt
重定向!
在emacs中,我有各种操作文本的功能.现在我正在使用xcode,我想我可以将emacs作为默认编辑器,但我想浏览obj-c对象等,所以我宁愿只为xcode实现我最常用的文本操作命令.
首先在我的列表中,我想要一个命令,将当前行的文本向上/向下移动一行,将光标保持在当前行.
在emacs中,这是:
(defun move-one-line-downward ()
"Move current line downward once."
(interactive)
(forward-line)
(transpose-lines 1)
(forward-line -1))
Run Code Online (Sandbox Code Playgroud)
如果我能在Python中编写一个可以在XCode中执行相同操作的脚本,我会感到最开心,但就我所知,我需要与AppleScript交谈才能做到这一点.
有人可以通过XCode告诉我如何做到这一点吗?
我在foo分支的日志中看到了一个提交.我想确定这个提交是否已被挑选到分支上bar.
如果我在一个纯粹的git环境中,我认为哈希值是相同的,但是有问题的分支是使用git-svn引入的.
我误解了怎么git grep --cached foo运作?运行git版本1.6.4.4或1.6.5.2,git grep --cached foo返回完全相同的东西git grep foo.
我认为它会起作用git diff --cached,只搜索临时区域的变化.这肯定是手册让我相信的:
Run Code Online (Sandbox Code Playgroud)git diff [--options] --cached [<commit>] [--] [<path>…]此表单用于查看您为下次提交相对于命名而进行的更改
<commit>.通常,您希望与最新提交进行比较,因此如果您不提供<commit>,则默认为HEAD.如果HEAD不存在(例如,未出生的分支)并且<commit>未给出,则显示所有阶段性变化.--staged是一个同义词--cached.
这只是一个错误,还是有一种替代的/更好的方法来查找提交foo的更改?
git diff --cached | grep foo
Run Code Online (Sandbox Code Playgroud)
上面的命令给了我想要的一半,但它丢失了更改出现在哪个文件的上下文.
UPDATE
对于--cached正在查看的内容,我似乎有一个概念错误.假设应用了暂存区域,它看起来正在搜索树的状态.这是有道理的,现在我考虑一下.我想要搜索的是差异,而不是完整的树.
具体来说,我想知道我将要提交的所有文件的列表(我不关心行号或上下文)SpecialLog(...),所以我可以编辑这些文件并删除SpecialLog.所以,是的,我可以git diff --cached在寻呼机中进行搜索SpecialLog,但是对于单个文件中的大量更改,有很多重复项,并且我看到的文件并不明显.