如何使用git提交文件?

时间:2011-08-16 15:31:36

标签: git

这些教程都没有帮助! 他们都做了他们只是假设我知道该怎么做的事情。

目前,我的终端窗口以..开头

# 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

所有这一切都是

  

我们只需输入提交消息并退出编辑器。

这是什么意思?!
仅仅因为你写的单词只是并不意味着它很简单..

当我开始输入它时,确实是“记录”或“插入”,并且有大约300个文件,并且它要我用消息替换每一行?!

帮助!

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

9 个答案:

答案 0 :(得分:86)

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

看起来您的默认编辑器是Vi或Vim。键入时出现“奇怪的东西”的原因是Vi无法在插入模式下启动 - 您必须先在键盘上按 i !如果您不想这样,可以将其更改为更简单的内容,例如:

git config --global core.editor nano

然后你会在提交时加载Nano编辑器(假设它已安装!),这对于没有使用模态编辑器(如Vi)的用户来说更直观。

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

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

git commit -m "Added foo to the bar"

答案 1 :(得分:23)

这听起来好像唯一的问题是启动的默认编辑器是vivim,您不熟悉它。 (快速提示,要退出该编辑器而不保存更改,请按 Esc 几次,然后键入 q 输入。)

有多种方法可以设置默认编辑器,但是您没有指出您正在使用哪种操作系统,因此特别难以推荐。我建议使用:

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

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

答案 2 :(得分:13)

我不知道您的系统环境,但似乎您已输入:

git commit

您的默认编辑器已启动。在最坏的情况下(适合你)它可能是vim:)

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

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

git commit -m 'Type your commit message here'

答案 3 :(得分:13)

在标准的Vi编辑器中,你应该

  1. 按Esc
  2. 输入“:wq”(不带引号)
  3. 按Enter键

答案 4 :(得分:11)

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

git commit -a -m 'My commit comments'

-a =所有已编辑的文件

-m =以下字符串是评论。

这将提交到您的本地驱动器/文件夹repo。如果要将更改推送到git服务器/远程托管服务器,请在上面的命令后键入:

git push

GitHub's cheat sheet非常方便。

答案 5 :(得分:2)

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

通常会启动vim。要插入文字i<esc>会恢复正常模式,点击ZZ保存并退出(ZQ退出而不保存)。瞧,这是你的提交

答案 6 :(得分:1)

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

git commit -m "My Commit Message"

通过我的直觉来查看您的消息,您可能不希望cache文件包含在您的软件仓库中。特别是如果它是在运行程序时动态构建的东西。如果是,那么您应该将以下行添加到.gitignore文件

httpdocs/newsite/manifest/cache/*

答案 7 :(得分:1)

当您尝试使用提交时不包含消息时会发生这种情况:

git commit

它启动了一个编辑环境。键入:q!并按Enter键退出。

它会在没有提交的情况下带你回到终端,所以一定要再试一次,这次传递信息:

git commit -m 'Initial commit'

答案 8 :(得分:0)

我遇到了同样的问题,我通过输入:q!然后点击Enter解决了 它解决了我的问题 之后,运行以下命令 git commit -a -m "your comment here"

这应该可以解决您的问题。