159

这将是我第一次使用 git。我已将新文件(很多)添加到文件夹/项目(git 本地存储库)中。

我浏览了在线教程和论坛,看看我能做到

git commit -a

所以我去存储库的基本文件夹并做一个

sudo git commit -a

但是随后,一些屏幕出现并要求我添加我所做的评论。我不知道如何继续或退出。我不想搞砸所以我做了 ctrl + Z 并没有做任何事情。

你们能概述一下我需要使用的命令吗?

git commit -a 

git push?
4

13 回答 13

489

使用该git add命令,后跟以空格分隔的文件名列表。如果在其他目录中,则包括路径,例如directory-name/file-name.

git add file-1 file-2 file-3

(请注意文件名区分大小写,必须包含“.extension”)

于 2014-05-13T02:08:47.803 回答
147

要添加您所做的所有更改:

git add .

提交它们:

git commit -m "MY MESSAGE HERE"#-m 是消息标志

您可以像这样将这些步骤放在一起:

git commit -a -m "MY MESSAGE HERE"

要将已提交的更改从本地存储库推送到远程存储库:

git push origin master

在此之后,您可能需要输入 github 的用户名/密码。 这是使用 git 的一个很好的入门。有点旧,但它很好地涵盖了正在发生的事情。

于 2013-10-24T20:39:20.010 回答
50

正如一些人提到的一种可能的方法是使用git interactive staging。当您有具有不同扩展名的文件时,这很棒

$ git add -i
           staged     unstaged path
  1:    unchanged        +0/-1 TODO
  2:    unchanged        +1/-1 index.html
  3:    unchanged        +5/-1 lib/simplegit.rb

*** Commands ***
  1: status     2: update      3: revert     4: add untracked
  5: patch      6: diff        7: quit       8: help
What now>

如果您按下2enter您将获得要添加的可用文件列表:

What now> 2
           staged     unstaged path
  1:    unchanged        +0/-1 TODO
  2:    unchanged        +1/-1 index.html
  3:    unchanged        +5/-1 lib/simplegit.rb
Update>>

现在你只需要插入你想要添加的文件的数量,所以如果我们想要添加TODO并且index.html我们会输入1,2

Update>> 1,2
           staged     unstaged path
* 1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
  3:    unchanged        +5/-1 lib/simplegit.rb
Update>>

你看到* 前面的数字了吗?这意味着该文件已添加。

现在想象一下,您有 7 个文件,并且您想将除第 7 个之外的所有文件都添加进去吗?当然我们可以输入1,2,3,4,5,6,但是想象一下我们有 16 个而不是 7,那会很麻烦,我们不需要全部输入它们,因为我们可以使用范围,通过输入1-6

Update>> 1-6
           staged     unstaged path
* 1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
* 3:    unchanged        +5/-1 lib/simplegit.rb
* 4:    unchanged        +5/-1 file4.html
* 5:    unchanged        +5/-1 file5.html
* 6:    unchanged        +5/-1 file6.html
  7:    unchanged        +5/-1 file7.html
Update>>

我们甚至可以使用多个范围,所以如果我们想要从 1 到 3 和从 5 到 7,我们输入1-3, 5-7

Update>> 1-3, 5-7
           staged     unstaged path
* 1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
* 3:    unchanged        +5/-1 lib/simplegit.rb
  4:    unchanged        +5/-1 file4.html
* 5:    unchanged        +5/-1 file5.html
* 6:    unchanged        +5/-1 file6.html
* 7:    unchanged        +5/-1 file7.html
Update>>

如果我们键入 ,我们也可以使用它来取消暂存文件-number,因此如果我们想取消暂存文件编号 1,我们将键入-1

Update>> -1
           staged     unstaged path
  1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
* 3:    unchanged        +5/-1 lib/simplegit.rb
  4:    unchanged        +5/-1 file4.html
* 5:    unchanged        +5/-1 file5.html
* 6:    unchanged        +5/-1 file6.html
* 7:    unchanged        +5/-1 file7.html
Update>>

正如您可以想象的那样,我们还可以取消暂存一系列文件,因此如果我们键入-range该范围内的所有文件,则将取消暂存。如果我们想取消从 5 到 7 的所有文件,我们将输入-5-7

Update>> -5-7
           staged     unstaged path
  1:    unchanged        +0/-1 TODO
* 2:    unchanged        +1/-1 index.html
* 3:    unchanged        +5/-1 lib/simplegit.rb
  4:    unchanged        +5/-1 file4.html
  5:    unchanged        +5/-1 file5.html
  6:    unchanged        +5/-1 file6.html
  7:    unchanged        +5/-1 file7.html
Update>>
于 2016-03-11T15:13:14.677 回答
32

您也可以像这样选择多个文件

git add folder/subfolder/*

这将添加指定子文件夹中的所有文件。当您编辑一堆文件但您只想提交其中一些文件时非常有用......

于 2016-02-03T15:59:02.190 回答
15

如果要在给定文件夹中添加多个文件,可以使用{,}. 这对于不重复长路径来说太棒了,例如

git add long/path/{file1,file2,...,filen}

注意不要在,.

于 2016-06-16T22:31:31.333 回答
9

只需在每个文件名周围使用单引号,以确保任何带空格的文件都能按预期工作

git add 'file1' 'file2' 'file3' 
于 2020-11-29T02:18:57.187 回答
4

当您更改文件或在存储库中添加新文件时,您首先必须暂存它们。

git add <file>

或者如果你想全部上演

git add .

通过这样做,你告诉 git 在你的下一次提交中你想要什么文件。然后你做:

git commit -m 'your message here'

你用

git push origin master

其中 origin 是远程存储库分支,master 是您的本地存储库分支。

于 2013-10-24T20:45:17.353 回答
3

步骤 1

git init

第2步。

a) 对于所有文件

git add -a

b)仅特定文件夹

git add <folder1> <folder2> <etc.>

第三步。

git commit -m "Your message about the commit"

第4步。

在此处输入图像描述

git remote add origin https://github.com/yourUsername/yourRepository.git

步骤 5

git push -u origin master
git push origin master

如果您遇到此错误

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/harishkumawat2610/Qt5-with-C-plus-plus.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

使用此命令

git push --force origin master
于 2020-06-16T08:19:26.577 回答
2

要添加您所做的所有更改:

git add .

添加单个文件夹:

git add directory path

添加多个文件夹:

git add folder1 folder2 folder3 foldern

提交所有更改:

git commit -m "message"

要将已提交的更改从本地存储库推送到远程存储库:

git push origin branch name
于 2021-05-15T05:09:21.597 回答
1

听起来 git 正在启动您的编辑器(可能vi),以便您可以输入提交消息。如果你不熟悉vi,很容易学习基础知识。替代方案是:

  • 用于git commit -a -m "my first commit message"在命令行上指定提交消息(使用它不会启动编辑器)

  • EDITOR环境变量设置为您熟悉的编辑器

于 2013-10-24T20:48:11.750 回答
1

如果您想在 Github 上暂存和提交所有文件,请执行以下操作;

git add -A                                                                                
git commit -m "commit message"
git push origin master
于 2018-09-08T14:50:31.373 回答
0

我使用命令:git add *CMakeLists.txt,以便在子目录中添加所有 CmakeLists.txt 文件:

z:\Temp\proj_I2.21.09.24\CMakeLists.txt
z:\Temp\proj_I2.21.09.24\tools\t1\src\CMakeLists.txt
z:\Temp\proj_I2.21.09.24\tools\TAF\VV \CMakeLists.txt
z:\Temp\proj_I2.21.09.24\tools\TAF\Executable\CMakeLists.txt
z:\Temp\proj_I2.21.09.24\tools\TAF\Recording\CMakeLists.txt
z:\Temp\proj_I2 .21.09.24\Design\original\CMakeLists.txt

于 2022-01-26T06:09:26.780 回答
0

尝试这个:

git add file1
git commit file1
git push 
git add file2
git commit file2 --amend
git push 

注意:不带 -m 选项的 git commit 将为您的提交消息打开一个编辑器。

于 2021-08-02T22:35:42.067 回答