git 学习(6)开始使用 git 来提交文件版本

       如果你看了前一期的学习记录,并且自己已经实践,那么这个时候,你应该已经有了一个可以用的 git 仓库。现在可以在这个本地仓库中开始记录你对文件的更新了。

在我们之前的学习记录中,我们提到过在 git 仓库中,文件的状态有三种:

  1.   已提交(committed)
  2.  已修改(modified)
  3.  已暂存(staged)

当一个仓库开始追踪一个文件的时候,这个文件的状态就会是这三种状态中的一种,但是,在我们的项目路径下,其实还会有一类文件,这一类文件要么是新创建的,要么是没有添加到 git 仓库的。这一类文件没有这三种状态。这三种状态的文件之间的互相转换关系如下:

git 生命周期

  • 一个新创建的文件,或者之前没有使用 add 添加的文件,都属于Untracked的文件,通过 git add <filename> 可以将文件加入追踪,此时文件的状态就变为了Staged状态。
  • 处于 Staged 状态的文件一般是新加入的文件,或者是已经修改的文件,这些文件是通过 git add 命令加入暂存区的。这些文件,可以通过 git commit 命令把文件永久的保存到仓库中,这时,文件的状态会变为 Unmodified 。
  • 在我们修改了一个已经被追踪的文件的时候,这个文件的状态就汇从 Unmodified 变成了 Modified 状态,此时,又可以把这个文件加入暂存区。
  • 对于已经使用 git 保存版本的文件,如果不再需要追踪这个文件了,可以使用 git mv <filename> 来将这个文件从追踪文件列表中移除。

查看文件的状态:

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:   GetNodeId.py
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       GetPodId.py
no changes added to commit (use "git add" and/or "git commit -a")

状态报告中可以看到新建的 GetPodId.py 文件出现在 Untracked files 下面。 未跟踪的文件意味着 Git 在之前的快照(提交)中没有这些文件;Git 不会自动将之纳入跟踪范围,除非你明明白白地告诉它“我需要跟踪该文件”,在使用 git add GetPodId.py 将 GetPodId.py 加入追踪,运行 git add 命令。 这是个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决;状态等该文件的状态变为如下,如上图状态Untracked 状态到Staged 状态。:

git add GetPodId.py

git status

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:   GetPodId.py

使用 git add . 可以把当前目录下所有的未追踪的文件和修改过的文件加入暂存区中,此时文件的状态如下:, " . "代表的是当前路径。

git add .

git status

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   GetNodeId.py
#       new file:   GetPodId.py

这个时候,我们就可以把修改过的文件保存到版本库了,但是假设你现在发现程序 GetPodId.py 里面有一个错误,此时你修改了这个文件。那么,这个时候,我们再次 git status 的时候,文件状态就是如下的,这个会发现 GetPodId.py 这个文件即出现在了暂存区,又未加入暂存区:

git status

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   GetNodeId.py
#       new file:   GetPodId.py
#
# 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:   GetPodId.py

这是因为我们在上一次修改 GetPodId.py 文件的时候,已经将上一次修改添加到了暂存区,此时暂存区保存的依然是上一次的修改,此时如果使用 git commit 提交的话,提交到版本仓库的依然是上一次的修改。如果要将现在的修改提交到版本库的话,需要重新将当前的修改添加到暂存区,然后再提交到版本库。

此时,所有的文件修改都已经放到了暂存区,我们可以通过 git commit 来提交代码版本了。

git commit -m "my commit , add file "GetPodId.py" "GetNodeId.py"

-m 参数是添加对本次提交的,描述信息。

[root@localhost gitrepo]# git commit -m "my commit , add file "GetPodId.py" "GetNodeId.py""
[master cdd4f96] my commit , add file GetPodId.py GetNodeId.py
 2 files changed, 3 insertions(+)
[root@localhost gitrepo]#
[root@localhost gitrepo]# git status
# On branch master
nothing to commit, working directory clean
[root@localhost gitrepo]#

此时,通过 git log 就可以在提交历史记录中看到本次提交,这个提交就记录了本次提交的版本,我们可以在后边很容易的将代码回滚到当前的状态(后边会有介绍):

[root@localhost gitrepo]# git log
commit cdd4f960f3703c1f9509fc99f4b9085638547f0a
Author: zhou <zhou>
Date:   Tue Dec 4 12:25:58 2018 +0800

    my commit , add file GetPodId.py GetNodeId.py

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值