如何同时向Git添加多个文件

kis*_*e . 94 git push commit

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

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

     git commit -a
Run Code Online (Sandbox Code Playgroud)

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

    sudo git commit -a
Run Code Online (Sandbox Code Playgroud)

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

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

git commit -a 
Run Code Online (Sandbox Code Playgroud)

git push?
Run Code Online (Sandbox Code Playgroud)

Reg*_*ham 312

使用该git add命令,后跟一个以空格分隔的文件名列表,例如

git add <file-name-1> <file-name-2> <file-name-3>
Run Code Online (Sandbox Code Playgroud)

  • 当其中一个文件名包含带有git 1.9.5的空格时,这不起作用 (4认同)

dax*_*dax 101

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

git add .

提交它们:

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

您可以将这些步骤放在一起,如下所示:

git commit -a -m "MY MESSAGE HERE"

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

git push origin master

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


小智 23

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

git add folder/subfolder/*
Run Code Online (Sandbox Code Playgroud)

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


Fab*_*nes 20

正如一些人所提到的,可能的方法是使用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>
Run Code Online (Sandbox Code Playgroud)

如果按2 ,然后enter你会得到可用的文件列表中添加:

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>>
Run Code Online (Sandbox Code Playgroud)

现在你只需要插入你想要添加的文件的数量,所以如果我们想要添加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>>
Run Code Online (Sandbox Code Playgroud)

你看到* 之前的号码?这意味着该文件已添加.

现在想象你有7个文件,除了第7个你想要添加它们吗?当然我们可以打字,1,2,3,4,5,6但想象而不是7我们有16,这将是非常麻烦的,我们不需要输入它们的好处因为我们可以使用范围,通过键入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>>
Run Code Online (Sandbox Code Playgroud)

我们甚至可以使用多个范围,因此如果我们想要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>>
Run Code Online (Sandbox Code Playgroud)

如果我们输入-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>>
Run Code Online (Sandbox Code Playgroud)

正如您可以想象的那样,我们也可以取消一系列文件,因此如果我们输入-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>>
Run Code Online (Sandbox Code Playgroud)

  • 我个人喜欢这样.当您有更多要提交的文件和其他操作时,它很容易使用. (2认同)
  • @Crparedes 添加文件后,如果再次按 Enter 键,它将返回到菜单,然后您必须选择选项“7”才能退出交互式暂存。 (2认同)

Eli*_*iuX 12

如果要在给定文件夹中添加多个文件,可以使用它们进行拆分{,}.这对于不重复长路径是很棒的,例如

git add long/path/{file1,file2,...,filen}
Run Code Online (Sandbox Code Playgroud)

小心不要在它之间放置空格,.


Har*_*wat 6

git init
Run Code Online (Sandbox Code Playgroud)

a) 对于所有文件

git add -a
Run Code Online (Sandbox Code Playgroud)

b) 仅特定文件夹

git add <folder1> <folder2> <etc.>
Run Code Online (Sandbox Code Playgroud)
git commit -m "Your message about the commit"
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

git remote add origin https://github.com/yourUsername/yourRepository.git
Run Code Online (Sandbox Code Playgroud)
git push -u origin master
git push origin master
Run Code Online (Sandbox Code Playgroud)

如果你遇到这个错误

 ! [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.
Run Code Online (Sandbox Code Playgroud)

使用这个命令

git push --force origin master
Run Code Online (Sandbox Code Playgroud)


use*_*745 6

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

git add 'file1' 'file2' 'file3' 
Run Code Online (Sandbox Code Playgroud)