小编Jef*_*ris的帖子

归咎于不同位置的早期版本的文件

有一次,我的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并指责相应的路径,但我宁愿避免这种情况.

git blame

22
推荐指数
1
解决办法
5757
查看次数

在补丁文件中突出显示添加/删除的行,忽略移动

我正在审查一个能够解决很多问题的补丁,添加了一些东西,并删除了一些东西.我想知道是否有人编写了一个实用程序,用于在通用差异中挑选出独特的添加/删除功能?

也就是说,添加和删除相同的行应该取消它们自己.

显然这并不是一直有用,但有时它正是我想要的:)

git diff

18
推荐指数
3
解决办法
3709
查看次数

确定是否重定向了Python进程的stdout

我注意到卷曲可以判断我是否重定向其输出(在这种情况下,它会显示进度条).

有没有合理的方法在Python脚本中执行此操作?所以:

$ python my_script.py
未重定向

$ python my_script.py> output.txt
重定向!

python

16
推荐指数
2
解决办法
2643
查看次数

在XCode中操作文本,移动一行

在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告诉我如何做到这一点吗?

xcode metaprogramming

11
推荐指数
2
解决办法
5575
查看次数

找出git分支上是否存在特定提交

我在foo分支的日志中看到了一个提交.我想确定这个提交是否已被挑选到分支上bar.

如果我在一个纯粹的git环境中,我认为哈希值是相同的,但是有问题的分支是使用git-svn引入的.

git git-svn

5
推荐指数
1
解决办法
847
查看次数

git grep --cached

我误解了怎么git grep --cached foo运作?运行git版本1.6.4.4或1.6.5.2,git grep --cached foo返回完全相同的东西git grep foo.

我认为它会起作用git diff --cached,只搜索临时区域的变化.这肯定是手册让我相信的:

git diff [--options] --cached [<commit>] [--] [<path>…]
Run Code Online (Sandbox Code Playgroud)

此表单用于查看您为下次提交相对于命名而进行的更改<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,但是对于单个文件中的大量更改,有很多重复项,并且我看到的文件并不明显.

git grep

5
推荐指数
1
解决办法
1167
查看次数

标签 统计

git ×4

blame ×1

diff ×1

git-svn ×1

grep ×1

metaprogramming ×1

python ×1

xcode ×1