git基础(2)-创建仓库/更新记录

创建仓库

  1. 在现有目录初始化仓库

    1
    $ git init

    git init 命令将在此目录下创建一个名为.git的子目录,该目录包含 Git 仓库的必须文件。如果在一个非空文件夹中初始化 Git 仓库,需要通过 git add 命令实现对指定文件的跟踪,然后执行 git commit 提交

  2. 克隆现有仓库

    1
    $ git clone https://github.com/Better-Jiang/Better-Jiang.github.io

    执行 git clone [url] [rpName]命令,默认配置下,会拉取远程 Git 仓库中的每一个文件的每一个版本,克隆了该 Git 仓库服务器上的几乎所有数据。

更新记录到仓库

文件状态

工作目录下的文件只有 2 中状态:已跟踪未跟踪(Untracked)

  • 已跟踪: 指那些已经纳入了版本控制的文件,在上一次快照中有它的记录。其状态可能处于未修改(Unmodified),已修改(Modified),放入暂存区(Staged)。

  • 未跟踪(Untracked):指既不在上次快照的记录中,也没有放入暂存区的文件。一般是新加入的文件,还没执行git add命令.
    git 文件生命周期:

    git文件生命周期

检查当前文件状态

git status 命令,查看当前目录文件状处于什么态.

  • 目录干净(working directory clean),所有已跟踪的文件在上次提交后都未被更改过。

    1
    2
    3
    4
    5
    $ git status
    On branch master
    Your branch is up to date with 'origin/master'.

    nothing to commit, working tree clean
  • 未跟踪的文件(Untracked files),在之前的快照(提交)中没有该文件。

    1
    2
    3
    4
    5
    6
    7
    8
    $ echo 'My Project' > README
    $ git status
    On branch master
    Untracked files:
    (use "git add <file>..." to include in what will be committed)
    README
    nothing added to commit but untracked files present (use "git add" to
    track)
  • 跟踪新文件,但未提交(Changes to be committed),处于暂存状态
    使用git add命令 开始跟踪一个文件,是已暂存状态

    1
    2
    3
    4
    5
    6
    7
    $ git add README

    $ git status
    On branch master
    Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)
    new file: README
  • 暂存已修改文件
    修改一个已被跟踪的文件,然后运行git status命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $ git status

    On branch master
    Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)
    new file: README
    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: CONTRIBUTING.md

    文件CONTRIBUTING.mdChanges not staged for commit这行下面,说明已跟踪的文件被修改了,但没有放入暂存区。要暂存此次更新,需要再次执行git add命令。

    1
    2
    3
    4
    5
    6
    7
    $ git add CONTRIBUTING.md
    $ git status
    On branch master
    Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)
    new file: README
    modified: CONTRIBUTING.md

    git add 将CONTRIBUTING.md文件放到暂存区,此时两个文件都是已暂存,下次执行提交时就会一并记录到仓库。

git add / git commit 理解

git add命令有多个功能

  • 可以用它开始跟踪新文件并放入暂存区
  • 把已跟踪的且被修改过的文件放入暂存区
  • 合并时把有冲突的文件标记未已解决状态

git add 命令 可理解为 添加内容到下一次提交中, 而非 将一个文件添加到项目中
git commit命令,将暂存区的所有文件(git add 命令后的那个版本)提交到版本库中的当前分支上。如果执行了git add 命令之后又做了修改文件,需要重新运行git add 把最新的版本暂存起来。