迷茫2017-05-02 09:38:32
When the modification has been approvedgit add <change file>
将其添加到stage
,可以通过git commit -m "<message>"
为这所有已经进入stage
的改变添加一个commit
信息。什么是在stage
? See below
If your file has been submitted before, but this time the changes have not been made stage
, as follows:
You can directly use git commit -am "<message>"
to add all modifications but not git commit -am "<message>"
,将所有修改,但未进stage
的改动加入stage
,并记录commit
信息。(某种程度上相当于git add
和git commit -m
的组合技,前提是被改动文件已经是tracked
to
commit
information. (To some extent, it is equivalent to the combination of git add
and git commit -m
, provided that the modified file is already tracked
)🎜给我你的怀抱2017-05-02 09:38:32
git commit -am "str"
#等同于
git commit -a -m "str"
Let’s run it
man git commit
To get the meaning of the a
parameters, you will know the difference.
OPTIONS
-a, --all
Tell the command to automatically stage files that have been modified and >deleted, but new files you have not told Git about are not affected.
means
Automatically put all currently modified and deleted files on the stack, but those you have not added will not be affected.
Usually when we submit git
git add .
git commit -m "some str"
git push
These three big steps, but in fact, you only need two commands, unless there are new files to be added.
git commit -am "some str"
git push
伊谢尔伦2017-05-02 09:38:32
Literally explained, git commit -m is used to submit files in the staging area; git commit -am is used to submit tracked files
To understand their differences, you must first understand the file status change cycle of git, as shown in the figure below
All files under the working directory are in these two states: tracked or untracked. Tracked files refer to files that have been included in version control management. They are recorded in the last snapshot. After working for a period of time, their status may be not updated, modified or placed in the staging area
The following is an example
When a new file such as 'a.txt' is added to the project folder, the file is in an untracked state. Files in untracked status cannot be submitted
Next, use git add a.txt to make it tracked
At this time, if you use git commit -m 'add a.txt', you can submit it smoothly
But what is the difference between git commit -m and git commit -am? It depends on the processing after modifying the a.txt file
Next, add content 'a' to a.txt
The file a.txt is tracked but not staged. At this time, if you use git commit -m, you cannot submit the latest version of a.txt. What is submitted is only the old version of a.txt with empty content at the beginning
To submit a new version of a.txt, that is, a.txt with the content 'a', you need to use git add a.txt to put the new version of a.txt into the staged temporary storage area, and then use git commit -m Make a submission
If you use git commit -am, you can omit the step of git add a.txt, because git commit -am can submit the tracked file, and a.txt has already been tracked from the beginning
In summary, the key to the difference between using these two commands is the git add command
The git add command is a multi-functional command. Depending on the status of the target file, the effect of this command is also different: you can use it to start tracking new files, or to put tracked files into the temporary storage area, and it can also be used to merge files. Conflicted files are marked as resolved status etc.
We need to use the git add command to track new files, but if you use git commit -am, you can omit the function of using the git add command to put the tracked files into the staging area