How to add multiple files to Git at the same time

后端 未结 10 604
半阙折子戏
半阙折子戏 2021-01-29 18:12

This will be my first git use. I have added new files ( a lot ) to the folder/project ( git local repository).

I went through online tutorials and forums and see i can do

相关标签:
10条回答
  • 2021-01-29 18:26

    If you want to stage and commit all your files on Github do the following;

    git add -A                                                                                
    git commit -m "commit message"
    git push origin master
    
    0 讨论(0)
  • 2021-01-29 18:30

    To add all the changes you've made:

    git add .

    To commit them:

    git commit -m "MY MESSAGE HERE" #-m is the message flag

    You can put those steps together like this:

    git commit -a -m "MY MESSAGE HERE"

    To push your committed changes from your local repository to your remote repository:

    git push origin master

    You might have to type in your username/password for github after this. Here's a good primer on using git. A bit old, but it covers what's going on really well.

    0 讨论(0)
  • 2021-01-29 18:39

    As some have mentioned a possible way is using git interactive staging. This is great when you have files with different extensions

    $ 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>
    

    If you press 2 then enter you will get a list of available files to be added:

    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>>
    

    Now you just have to insert the number of the files you want to add, so if we wanted to add TODO and index.html we would type 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>>
    

    You see the * before the number? that means that the file was added.

    Now imagine that you have 7 files and you want to add them all except the 7th? Sure we could type 1,2,3,4,5,6 but imagine instead of 7 we have 16, that would be quite cumbersome, the good thing we don't need to type them all because we can use ranges,by typing 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>>
    

    We can even use multiple ranges, so if we want from 1 to 3 and from 5 to 7 we type 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>>
    

    We can also use this to unstage files, if we type -number, so if we wanted to unstage file number 1 we would type -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>>
    

    And as you can imagine we can also unstage a range of files, so if we type -range all the files on that range would be unstaged. If we wanted to unstage all the files from 5 to 7 we would type -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>>
    
    0 讨论(0)
  • 2021-01-29 18:39

    It sounds like git is launching your editor (probably vi) so that you can type a commit message. If you are not familiar with vi, it is easy to learn the basics. Alternatives are:

    • Use git commit -a -m "my first commit message" to specify the commit message on the command line (using this will not launch an editor)

    • Set the EDITOR environment variable to an editor that you are familiar with

    0 讨论(0)
提交回复
热议问题