【git笔记】提交版本

本文详细介绍了Git的基本操作,包括使用gitadd将文件变动添加到暂存区,gitcommit进行本地提交,以及gitpush将本地仓库推送到远程仓库。通过多个示例展示了如何管理文件状态,确保版本控制的准确性和效率。
摘要由CSDN通过智能技术生成

说明

介绍几种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,完成推送。

[参考资料]

git Documentation

git-add

创建版本库

git add .与-A的区别(不同版本下的区别)


本文链接:https://blog.csdn.net/u012028275/article/details/113793442

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值