git笔记 提交版本
说明
介绍几种git提交版本所需要用到的命令。环境:Ubuntu/Debian。
命令
把文件修改添加进暂存区(staging area)
添加单个文件
git add <file>
该命令执行后,文件会被添加进暂存区(staging area)。
添加多个文件
git add <file1> <file2> <file3> ...
该命令执行后,这些文件都会被添加进暂存区(staging area)。
添加所有文件,包括新文件(new)和修改的文件(modified)和已经删除的文件(deleted)
Git Version 1.x 和 Git Version 2.x
git add -A
git add --all
Git Version 2.x
git add .
git add --no-ignore-removal
该命令执行后,所有文件的变化都会被添加进暂存区(staging area)。
添加所有新文件(new)和修改的文件(modified),不包含已经删除的文件(deleted)
Git Version 1.x
git add .
Git Version 1.x 和 Git Version 2.x
git add --no-all .
Git Version 2.x
git add --ignore-removal .
该命令执行后,所有新文件(new)和修改的文件(modified)都会被添加进暂存区(staging area)。
添加所有修改的文件(modified)和已经删除的文件(deleted),不包含新的文件(new)
Git Version 1.x 和 Git Version 2.x
git add -u
git add --update
该命令执行后,所有修改的文件(modified)和已经删除的文件(deleted)都会被添加进暂存区(staging area)。
把文件提交到本地仓库(local repository)
提交所有暂存区(staging area)的内容
git commit -m <message>
或者
git commit --message=<message>
该命令执行后,会将暂存区(staging area)的内容都提交到本地仓库(local repository)。
<message>
是要提交的版本说明,例如git commit -m "code version 1"
或者git commit --message="code version 1"
提交在暂存区(staging area)的指定文件
git commit <file1> <file2> <file3> ... -m <message>
该命令执行后,会将暂存区(staging area)的指定文件提交到本地仓库(local repository)。
提交所有在工作区(working directory)的内容
git commit -a
或者
git commit -a -m <message>
该命令执行后,会将所有在工作区(working directory)的内容提交到本地仓库(local repository),但是不包括工作区(working directory)的新文件(new)。
把本地仓库(local repository)推送到远程仓库(remote repository)
git push <remote> <branch>
该命令执行后,会将本地仓库(local repository)的<branch>
分支内容推送到远程仓库(remote repository)<remote>
服务器的<branch>
分支。
推送master分支版本
git push origin master
该命令执行后,会将本地仓库(local repository)的master
分支内容推送到远程仓库(remote repository)的master
分支。
第一次推送版本
如果是第一次推送,可以添加参数-u
git push -u origin master
使用-u
参数,该参数用于指定trach branch,这里会指定origin
为默认主机,后面就可以不加任何参数使用git push
了。
git push
命令使用示例
把文件修改添加进暂存区(staging area)示例
1.添加单个文件示例
假设目前仓库中有一个文件README.md,里面内容为
test
现在把内容修改为
add test
使用git status
命令查看一下
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README.md
#
no changes added to commit (use "git add" and/or "git commit -a")
使用命令git add README.md
将文件添加进暂存区(staging area)里。
使用git status
命令查看一下
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: README.md
#
已经将修改添加进了暂存区(staging area)里。
2.添加多个文件示例
假设目前仓库中有两个文件,分别为README.md和test.md,现在对里面的内容都做出了修改。
使用git status
命令查看一下
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README.md
# modified: test.md
#
no changes added to commit (use "git add" and/or "git commit -a")
使用命令git add README.md test.md
将文件添加进暂存区(staging area)里。
使用git status
命令查看一下
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: README.md
# modified: test.md
#
已经将两个文件的修改添加进了暂存区(staging area)里。
3.添加所有文件,包括新文件(new)和修改的文件(modified)和已经删除的文件(deleted)
假设目前仓库中有两个文件,分别为README.md和test.md。
现在修改README.md文件内容,删除test.md文件,新建一个文件NEW.md。
使用git status
命令查看一下
# On branch master
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README.md
# deleted: test.md
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# NEW.md
no changes added to commit (use "git add" and/or "git commit -a")
如果是Git Version 1.x,使用命令git add -A
将所有文件的变化添加进暂存区(staging area)。
如果是Git Version 2.x,使用命令git add -A
或者git add .
将所有文件的变化添加进暂存区(staging area)。
使用git status
命令查看一下
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: NEW.md
# modified: README.md
# deleted: test.md
#
发现暂存区(staging area)里新增了NEW.md,修改了README.md,删除了test.md,已经将所有文件的变化添加进暂存区(staging area)里。
4.添加所有新文件(new)和修改的文件(modified),不包含已经删除的文件(deleted)
假设目前仓库中有两个文件,分别为README.md和test.md。
现在修改README.md文件内容,删除test.md文件,新建一个文件NEW.md。
使用git status
命令查看一下
# On branch master
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README.md
# deleted: test.md
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# NEW.md
no changes added to commit (use "git add" and/or "git commit -a")
如果是Git Version 1.x,使用命令git add .
将所有新文件(new)和修改的文件(modified)都会被添加进暂存区(staging area),但是不包含已经删除的文件(deleted)。
如果是Git Version 2.x,使用命令git add --ignore-removal .
将所有新文件(new)和修改的文件(modified)都会被添加进暂存区(staging area),但是不包含已经删除的文件(deleted)。
使用git status
命令查看一下
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: NEW.md
# modified: README.md
#
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: test.md
#
发现新的文件NEW.md和修改的文件README.md有被添加进暂存区(staging area),但是删除的文件test.md没有。
已经将所有新文件(new)和修改的文件(modified)都会被添加进暂存区(staging area),但是不包含已经删除的文件(deleted)。
5.添加所有修改的文件(modified)和已经删除的文件(deleted),不包含新的文件(new)
假设目前仓库中有两个文件,分别为README.md和test.md。
现在修改README.md文件内容,删除test.md文件,新建一个文件NEW.md。
使用git status
命令查看一下
# On branch master
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README.md
# deleted: test.md
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# NEW.md
no changes added to commit (use "git add" and/or "git commit -a")
使用命令git add -u
将所有修改的文件(modified)和已经删除的文件(deleted)都会被添加进暂存区(staging area),但是不包含新的文件(new)。
使用git status
命令查看一下
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: README.md
# deleted: test.md
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# NEW.md
发现修改的文件README.md和删除的文件test.md有被添加进暂存区(staging area),新文件NEW.md则没有。
已经将所有修改的文件(modified)和已经删除的文件(deleted)都会被添加进暂存区(staging area),但是不包含新的文件(new)。
把文件提交到本地仓库(local repository)示例
1.提交所有暂存区(staging area)的内容示例
假设目前仓库中有一个文件README.md.
现在修改README.md文件内容.
然后使用git add README.md
命令文件将添加进暂存区(staging area)里。
这个时候执行git commit -m “commit test”
,直接将暂存区(staging area)的内容提交到本地仓库(local repository)。
然后用git status
命令查看一下
# On branch master
nothing to commit (working directory clean)
修改的内容都提交了。
使用git log
命令查看一下,可以看到已经提交的版本。
2.提交在暂存区(staging area)的指定文件示例
git commit <file1> <file2> <file3> ... -m <message>
该命令执行后,会将暂存区(staging area)的指定文件提交到本地仓库(local repository)。
假设目前仓库中有两个文件,分别为README.md和test.md.
现在对里面的内容都做出了修改。
使用git status
命令查看一下
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README.md
# modified: test.md
#
no changes added to commit (use "git add" and/or "git commit -a")
使用命令git add README.md test.md
将文件添加进暂存区(staging area)里。
使用git status
命令查看一下
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: README.md
# modified: test.md
#
这个时候执行git commit README.md -m “commit test”
,只将README.md文件提交到本地仓库(local repository)。
然后用git status
命令查看一下
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: test.md
#
可以看到test.md文件还在暂存区(staging area)里没有被提交到本地仓库(local repository)。
使用git log
命令查看一下,可以看到已经提交的版本。
3.提交所有在工作区(working directory)的内容示例
情况1:
假设目前仓库中有一个文件README.md.
现在修改README.md文件内容.
使用git status
命令查看一下
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README.md
#
no changes added to commit (use "git add" and/or "git commit -a")
这里不使用git add
命令文件将添加进暂存区(staging area)里,目前暂存区是干净的。
这个时候执行git commit -a
,直接将所有在工作区(working directory)的内容提交到本地仓库(local repository)。
然后用git status
命令查看一下
# On branch master
nothing to commit (working directory clean)
修改的内容都提交了。
使用git log
命令查看一下,可以看到已经提交的版本。
情况2:
假设目前仓库中有两个文件,分别为README.md和test.md。
现在修改README.md文件内容,删除test.md文件,新建一个文件NEW.md。
使用git status
命令查看一下
# On branch master
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README.md
# deleted: test.md
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# NEW.md
no changes added to commit (use "git add" and/or "git commit -a")
这里不使用git add
命令文件将添加进暂存区(staging area)里,目前暂存区是干净的。
这个时候执行git commit -a
,直接将所有在工作区(working directory)的内容提交到本地仓库(local repository),但是不包括新文件。
然后用git status
命令查看一下
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# NEW.md
nothing added to commit but untracked files present (use "git add" to track)
新文件没有被提交。
使用git log
命令查看一下,可以看到已经提交的版本。
把本地仓库(local repository)推送到远程仓库(remote repository)示例
假设目前版本已经提交到了本地仓库(local repository),当前是master
分支,远程服务器名称是默认的origin
。
执行git push origin master
,完成推送。
[参考资料]
本文链接:https://blog.csdn.net/u012028275/article/details/113793442