【Git】基础及常用命令

安装可以参考【Git】安装及配置

1 获取 Git 仓库

通常有两种获取 Git 项目仓库的方式:

  1. 将尚未进行版本控制的本地目录转换为 Git 仓库;
  2. 从其它服务器 克隆 一个已存在的 Git 仓库。

两种方式都会在本地机器上得到一个工作就绪的 Git 仓库。

1.1 在已存在目录中初始化仓库

如果你有一个尚未进行版本控制的项目目录,想要用 Git 来控制它,那么首先需要进入该项目目录中。 不同系统上的做法不同:
在 Linux 上:

$ cd /home/user/my_project

在 macOS 上:

$ cd /Users/user/my_project

在 Windows 上:

$ cd /c/user/my_project

之后执行:

$ git init

该命令将创建一个名为 .git 的子目录,这个子目录含有初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。 但在此时,仅仅是做了一个初始化的操作,项目里的文件还没有被跟踪。 可以通过 git add 命令来指定所需的文件来进行追踪,然后执行 git commit

$ git add .
$ git commit -m 'initial project version'

1.2 克隆现有的仓库

使用git clone <url>命令获得一份已经存在了的 Git 仓库的拷贝,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。比如,要克隆 Git 的链接库 libgit2,并自定义本地仓库的名字为“mylibgit”,可以用下面的命令:

$ git clone https://github.com/libgit2/libgit2 mylibgit

2 记录每次更新到仓库

2.1 记录每次更新到仓库

工作目录下的每一个文件只有以下两种状态:

  • 已跟踪: 被纳入了版本控制的文件( Git 已经知道的文件),在上一次快照中有它们的记录,在工作一段时间后, 它们的状态可能是未修改,已修改或已放入暂存区。
  • 未跟踪: 除已跟踪文件外的所有文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有被放入暂存区。

编辑过某些文件之后,,Git 将它们标记为已修改文件。 可以选择性地将这些修改过的文件放入暂存区,然后提交所有已暂存的修改。下图描述了文件的状态变化周期:
文件的状态变化周期

2.2 检查当前文件状态

可以用 git status 命令查看哪些文件处于什么状态。 在克隆仓库mylibgit后,没有修改任何文件,使用此命令,会看到类似这样的输出:

$ git status
On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

在项目下创建一个新的 README 文件,使用 git status 命令,可以看到一个新的未跟踪文件 README 出现在 Untracked files 下面,且字体为红色:

$ echo 'mylibgit' > README
$ git status
On branch main
Your branch is up to date with 'origin/main'.

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)

2.3 跟踪新文件

使用命令 git add 开始跟踪一个文件:

$ git add README

此时再运行 git status 命令,会看到 README 文件已被跟踪(绿色字体),并处于暂存状态:

$ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed: # 只要在 Changes to be committed 这行下面的,就说明是已暂存状态
  (use "git restore --staged <file>..." to unstage)
        new file:   README

2.4 暂存已修改的文件

在README文件添加一行,然后运行 git status 命令,会看到下面内容:

$ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   README

#  Changes not staged for commit 这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   README

文件 README 同时出现在暂存区(绿色字体)和非暂存区(红色字体)。Git 只暂存了运行 git add 命令时的版本, 如果现在提交,README的版本是最后一次运行 git add 命令时的那个版本&

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值