43
  • 我将 sublime text 作为 git 中的默认编辑器(它可以工作)
  • git config --edit以崇高的文本打开配置文件(真棒)

我的问题:

index.html打开say或style.css从项目目录中打开的命令是什么?

基本上,当我在做一个项目时,我希望能够从 git 打开一个文件。这个怎么做。每个教程似乎都涉及合并、克隆、提交,是的,我们都知道这些,如何执行这个简单的命令。或者这在 git 中是不可能的吗?

  • Windows 7的
  • msysgit 版本 1.8.0

我了解 git 不是启动器,并且严格用于版本控制。只想知道我手头的工具有哪些选择。

当我提交一个项目并意识到我需要对一个我已经关闭的 css 文件进行小编辑时,这个问题出现了,并且想知道我是否可以从 git 中打开以编辑该文件,因为我已经完成了它。

似乎这是不可能的(不是世界末日)我只是想用我使用的工具来了解我的所有选择

4

19 回答 19

76

Git 与您在项目中打开/编辑文件的方式无关。在 git 中配置编辑器只是为了让需要编辑器的 git 内部事物(例如提交消息)可以使用您喜欢的编辑器。

如果您只想从命令行(cmd.exe)打开文件,就像在 Windows 资源管理器中双击它们一样,我认为您可以使用start <filename>.

于 2012-12-15T00:48:19.623 回答
21

我可以通过使用以下命令来做到这一点:

notepad .gitignore

它会在记事本中打开 .gitignore 文件。

于 2013-10-29T06:38:59.917 回答
10

我通过此链接找到了解决方法。简而言之,您必须:

  1. 创建一个名为 subl 的文件(或您希望命令调用 Sublime Text 的任何名称),不带扩展名
  2. 将此命令放入上述文件中(如有必要,请替换可执行文件的路径):

    #!/bin/sh
    "C:\Program Files\Sublime Text 2\sublime_text.exe" $1 &
    
  3. 根据您的操作系统和 Sublime Text 版本将该 subl 文件放在适当的命令目录中(如果您有疑问,请查看上面的链接注释部分)。就我而言,我在 Windows 10 64bit 上使用 Sublime Text 3,所以我将它放在:

    C:\Program Files (x86)\Git\usr\bin
    
  4. 现在,为了让您打开所需的文件,在 git bash 中使用(在文件夹中)

    subl filename
    
于 2016-06-05T17:43:42.090 回答
6

只需使用vi+filename命令。

例子:

vi stylesheet.css

这将打开带有文件内容的 vi 编辑器。

要开始编辑,请按I

于 2017-07-03T12:24:51.973 回答
5

上面的 Brenton Alker 说 'start ' 有效——我要补充一点:它适用于所有已经与 sublime-text 关联的文件(正如他所说,它就像在 Windows 资源管理器中双击它们一样工作)。

但是,例如,如果您想将 .gitignore 文件从 shell 打开到 sublime_text 中,并且 .gitignore 与 sublime_text 没有关联,这就是我所做的:

我编辑了我的 PATH 环境变量以在程序文件中包含 Sublime Text 文件夹,该文件夹包含 sublime_text.exe。现在,在我的终端中(我使用 powershell,但它可以在任何终端上工作),当我输入“sublime_text .gitignore”时,我当前目录中的 .gitignore 会在 Sublime 中打开!

我试图制作一个名为 sublime.bat 的 .bat 文件,这样我就可以输入 sublime .gitignore,但这不起作用——它打开了 sublime 文本,但由于某种原因没有打开文件。我对 sublime_text 很满意(实际上,tab 补全为我简化了它——只需 'su[tab]' 就可以了!

于 2013-12-14T21:59:33.630 回答
3

您可以使用以下命令在 git bash 中打开文件:

vi <filename>               -- to open a file

i                           -- to insert into the file 

ESC button followed by :wq   -- to save and close the file 

希望能帮助到你。

任何其他基于终端的文本编辑器,如vimnano和许多也可以很好地完成这项工作。

于 2019-12-06T13:52:39.863 回答
3

你可以使用 git 命令行作为终端我的家伙你只知道命令是 bash 来创建文件

touch file.txt

打开文件

code file.py 
atom file.py
start file.py

在文本编辑器中打开当前文件夹及其中的所有内容

code . 

制作文件夹

mkdir folder1 folder2 folder3 

您可以一次制作任意数量的作品

于 2017-11-14T05:26:03.803 回答
2

您可以通过将以下行附加到 .gitconfig 文件来创建别名以在默认编辑器中打开文件:

edit = "!f() { $(git config core.editor) -- $@; }; f"

然后,git edit foo.txt将打开文件foo.txt进行编辑。

打开 .gitconfig 并粘贴该行要容易得多git config --global --edit,而不是弄清楚如何转义所有字符以直接从命令行输入别名git config alias.edit "..."

这个怎么运作

  • !启动 bash 命令,而不是内部 git 命令
  • f() {...};启动一个函数
  • $(git config core.editor)将从本地配置中获取编辑器的名称,如果未设置本地,则从全局获取。不幸的是,如果没有设置,它不会查找$VISUAL或查找此内容。$EDITOR
  • --将编辑器命令与文件列表分开。这适用于大多数命令行编辑器,因此安装起来更安全。如果跳过并且core.editor未设置,则可能会执行可执行文件而不是被编辑。有了它,命令就会失败。
  • $@将添加在命令行输入的文件。
  • f将在定义后执行该函数。

用例

其他答案对您为什么想要这个表示怀疑。我的用例是我想编辑文件作为我正在构建的其他 git 函数的一部分,并且我想在用户配置的同一个编辑器中编辑它们。例如,以下是我的别名之一:

reedit = "!f() { $(git config core.editor) -- $(git diff --name-only $1); }; f"

然后,git reedit将打开我已经开始修改的所有文件,git reedit --cached并将打开所有暂存文件。

于 2018-03-27T02:45:58.670 回答
1

当您在任何项目中工作并且想要进行较小的更改时,您可以使用 git 默认编辑器,但是您可能需要一个小脚本来解析由以下命令生成的文件

git config -l

然后变量code.editor保存值/Applications/Sublime_Text.app -n -w

您可以使用它打开os.system()

于 2014-01-26T08:46:43.813 回答
1

假设您在存储库根文件夹中

alias notepad="/c/Program\ Files\ \(x86\)/Notepad++/notepad++.exe"

然后您可以使用 Notepad++ 打开任何文件:

notepad readme.md
于 2019-02-14T19:35:44.813 回答
1

要在 Sublime Text 中打开文件,

这是在 Sublime Text 编辑器中打开示例文本文件的示例

subl <filename>.txt

subl 之前使用 Git Bash shell 中的“echo”命令创建为别名,包含目录文件。

于 2018-06-11T18:12:45.987 回答
1

我刚刚下载了 Git 2.7.0 并为 .bashrc 添加了一个别名,用于使用 VS Code 编辑文件:

alias code='/c/Program\ Files\ \(x86\)/Microsoft\ VS\ Code/bin/code.cmd'

还应该与其他编辑合作...

于 2016-01-11T19:46:07.017 回答
1

我使用 Atom 打开文件,这对我有用

atom index.html

希望这会有所帮助。

于 2017-06-01T16:17:48.923 回答
1

我知道这是古老的,但我需要在 git helper 脚本(从模板创建别名的别名)末尾执行此操作,并找到我认为真正的答案:

有一个类似瓷器的助手叫做git-sh-setup,当它被获取时,它会给你一个git_editor函数

在给定文件上运行用户选择的编辑器(GIT_EDITOR、core.editor、VISUAL 或 EDITOR),但如果没有指定编辑器并且终端是哑的,则会出错。

git-sh-setup文档描述基本上告诉你不要使用它,在这种情况下这可能是个好建议。

幸运的是,这git-sh-setup是一个 shell 脚本,git_editor它的部分很小,我们可以复制它

git_editor() {
    if test -z "${GIT_EDITOR:+set}"
    then
        GIT_EDITOR="$(git var GIT_EDITOR)" || return $?
    fi
    eval "$GIT_EDITOR" '"$@"'
}

你应该可以把它放在你自己的脚本中,或者把它变成一个 bash 别名,然后像这样调用它git_editor file1.txt file2.txt ...

于 2018-11-16T01:50:19.810 回答
0

我们总是喜欢使用 vi -- 打开文件

vi <filename> -- to open a file
于 2021-02-18T16:40:05.830 回答
0

也许从 git 存储库中共享的脚本打开编辑器可能会很有用,无需假设哪个编辑器可以让任何人使用该脚本,但前提是他们有 git。

在这里您可以测试是否在 git config 中设置了编辑器,还可以打开与该编辑器无关的文件:

alias editor="$(git config core.editor)"
if [ "$(alias editor | sed -r "s/.*='(.*)'/\1/")" != "" ]; then
    editor <filename>
else
    start <filename>
fi

在 Windows 上与我的 .gitconfig 配合使用非常好:

[core]
    editor = 'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin
于 2018-05-29T11:22:05.030 回答
0

该问题的一个简单解决方案是nano index.htmlgit 或任何其他终端将在终端上打开文件,然后您从那里进行编辑。

您会在编辑页面底部看到有关如何保存的命令。

于 2019-12-16T06:02:45.870 回答
0

您必须有一个与该文件类型关联的应用程序。您必须位于包含该文件的文件夹中。在 gitbash 中:start file.extension

于 2019-11-19T01:39:58.440 回答
-1

要在 git 中打开文件,您将在 windows 中键入explorer . ,注意资源管理器和点之间的空格。在 mac 上,您可以使用 来打开它open .,在 Linux 中nautilus .,请注意每个末尾的句点。

于 2019-08-13T13:12:13.323 回答