如何使用git提交文件?


How can I commit files with git?

这些教程都没用!他们都是这样做的,他们只是假设我知道该怎么做。

当前,我的终端窗口以..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use"git reset HEAD <file>..." to unstage)
#
#       deleted:    httpdocs/newsite/manifest/cache/0a432970ba6491fe65dad60b012e5c95_louloumay2011en-1-4dea3186b7f7b.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0a61b5d7a9e97da78fe602e1ad41edb6_5-4dec7c3d57c80.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0afb6a7716a85d0de46cdd03bb30f75f_fifa_panorama_full_page-01_thu-4dea3d1a0e0f5.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0b3bc9be76a5d3e1e36af4b8dcf98658_free2-4df0e2e08761f.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0b6342913b8e599fac76da452af98ec5_si-feb-2009-1-4dea3d1abcb61.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0b9ddc587340f7744e03c4b2dafacf7f_lou-lou-winter-2009-cover-4dea3d1a9b1a0.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0bf64ff8fc22720b3da20d0730fa6a04_chatelaine-dec-2009-4dea3d18daa30.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0bf664e03eb0a2255b69b02aed85add0_summumfeb2011-2-4dea3188766aa.jpg

但是在这里没有办法知道怎么做他们说要做的事。网址:http://learn.github.com/p/normal.html

它所说的一切都是

We simply type our commit message and exit the editor.

那是什么意思?!仅仅因为你简单地写这个词并不意味着它很简单。

当我开始打字的时候,它是wierd文件,说"录音"或"插入",大约有300个文件,它想让我用一条信息替换每一行????

救命!

我会用他们方便的Mac应用程序,但如果超过20个文件左右,它就会冻结!怎么了??


当您在没有参数的情况下运行git commit时,它将打开您的默认编辑器,允许您键入提交消息。保存文件并退出编辑器将进行提交。

看起来您的默认编辑器是vi或vim。当你输入时,"奇怪的东西"发生的原因是vi没有在插入模式下启动-你必须先点击键盘上的iakbd!如果您不想这样做,可以将其更改为更简单的内容,例如:

1
git config --global core.editor nano

然后您将加载nano编辑器(假设它已安装!)当您提交时,对于没有使用模式编辑器(如vi)的用户来说,这更为直观。

你在屏幕上看到的文本只是提醒你要提交什么。行前面是#,这意味着它们是注释,即在保存提交消息时,git忽略这些行。您不需要为每个文件键入消息-只需在编辑器缓冲区的顶部输入一些文本。

要绕过编辑器,可以提供一个提交消息作为参数,例如

1
git commit -m"Added foo to the bar"


听起来,这里唯一的问题似乎是启动的默认编辑器是vivim,您对此并不熟悉。(作为快速提示,要退出该编辑器而不保存更改,请按几次esc,然后键入:qenter。)

有几种方法可以设置默认编辑器,但您还没有指明要使用的操作系统,因此很难推荐一种。我建议使用:

1
 git config --global core.editor"name-of-your-editor"

…它为特定的编辑器设置全局Git首选项。或者,您可以设置$EDITOR环境变量。


在Standart vi编辑器中,在这种情况下,您应该

  • 压力ESC
  • 键入":wq"(不带引号)
  • 按回车

  • 我不知道您的系统环境,但您似乎键入了:

    1
    git commit

    默认编辑器已经启动。在最坏的情况下(对你来说),可能是Vim:。

    如果您不知道如何退出Vim,请使用:q。

    如果您还有其他问题,可以使用

    1
    git commit -m 'Type your commit message here'


    提交所有已更改文件的命令:

    1
    git commit -a -m 'My commit comments'

    -a=所有编辑的文件

    -m=后面的字符串是注释。

    这将提交到本地驱动器/文件夹报告。如果要将更改推送到git服务器/远程托管服务器,请在上述命令类型之后执行以下操作:

    1
    git push

    Github的备忘表非常方便。


    Git使用"索引"来准备提交。您可以在提交之前添加和删除索引中的更改(在粘贴中,您已经用git rm删除了大约10个文件)。当索引看起来像您想要的时候,运行git commit

    通常情况下,这会激发vim。要插入文本,点击i返回正常模式,点击ZZ保存并退出(ZQ不保存即退出)。嘿,这是你的承诺


    当您尝试使用以下方法提交时,如果不包含消息,则会发生这种情况:

    1
    git commit

    它启动一个编辑器环境。输入:q!并按回车键退出。

    它将在不提交的情况下带您返回终端,因此请确保重试,这次传递一条消息:

    1
    git commit -m 'Initial commit'


    看起来所有的编辑都已经是索引的一部分了。所以只需使用commit命令

    1
    git commit -m"My Commit Message"

    尽管我的直觉告诉你,你可能不想把cache文件放在你的仓库里。尤其是在运行程序时,它是动态构建的。如果是这样,则应将以下行添加到.gitignore文件中

    1
    httpdocs/newsite/manifest/cache/*