【问题标题】:How to use git mv from magit?如何使用来自 magit 的 git mv?
【发布时间】:2013-07-10 17:27:49
【问题描述】:

有没有一种好方法可以在 magit 中对文件调用 git mv?我知道可以使用 : 运行任何 git 命令,但这不会自动完成文件名。

【问题讨论】:

  • 仅供参考:您认为git mv 会做什么?你知道 git 不跟踪移动吗? git mv 只会重命名文件,从索引中删除旧名称并添加新名称。
  • 是的,就像 magit 中的其他所有内容基本上都是一/两个按键一样,我希望 mv 有一些东西。

标签: git emacs magit


【解决方案1】:

我不确定是否有直接的方法,但是...

鉴于 mv rm 加上 add 相同的东西,您可以正常重命名文件(例如在 dired 中),然后将这两个文件暂存随之而来的变化——一个被删除的文件和一个新的文件。

Git 应该会解决的。

编辑:

M-x vc-rename-file ?

【讨论】:

  • 这行得通,但我一直在寻找自动执行此操作的方法。 : mv /path/to/file1 /path/to/file2(来自 magit 缓冲区)甚至更快,但它不会自动完成。
  • 太棒了,vc-rename-file 做我想做的事!
  • 如何强制git mv?我收到错误消息:“请在移动文件之前更新文件”
  • nnyby:所以我猜你要移动的文件有未合并的更改,所以你应该按照它说的做并首先合并这些更改,否则我希望它们会是丢失。如果您 100% 确定不想要更改,-f 选项可能会起到作用。 (如果做不到这一点,您总是可以只复制文件,并在合并后手动恢复它。)
【解决方案2】:

至少在当前版本的 magit 中作为参考,magit-file-rename 可以由 R 调用。

【讨论】:

  • 如果也有magit-file-move 就好了。
  • 由于 magit 缓冲区没有列出跟踪的文件,将光标移动到最后一个空行并点击R 以调用 magit-file-rename
【解决方案3】:

我为此使用了 dired。 C-x d 文件打开时,然后在文件上按! 以将文件作为? 参数运行git mv ? newpath 命令。

【讨论】:

  • 这不会改变 emacs 缓冲区的目录,我经常忘记自己的困惑...
猜你喜欢
  • 2011-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
  • 1970-01-01
  • 1970-01-01
  • 2011-04-22
  • 2014-05-02
相关资源
最近更新 更多