工作中的 git 详解

概述

一直想写一下 git 的笔记, 只是都没有时间去做, 只能空闲的时候慢慢的补齐了;

毫无疑问, git 是目前最优秀的分布式版本控制工具, 没有之一; 作为一个码农, git 已经是一项必备的技能了, 许多优秀的社区都是基于 git 去做的版本控制; 比如全球最大的程序猿同性交友网站 github;

git 有很多种使用方式, 我们可以使用 git bash 这种命令行模式, 也可以使用 TortoiseGit 或者是 SourceTree 这样的 GUI 工具, 这些 GUI 工具也能提供多种功能; 而个人还是比较倾向于命令行的方式, 第一个是逼格比较高, 第二个是大多数的 GUI 软件都只实现了 git 所有功能的一个子集以降低操作难度; 命令行的模式下才能执行所有的 git 命令, 虽然大多数是开发中用不到的;

安装和配置

git 的安装也是比较简单的, git 下载官网 找到和操作系统相对应的版本, 一路 next 就可以了;

安装完之后, 快捷菜单里面会出现 Git GUI HereGit Bash Here; 我们可以打开 Git Bash, 在命令行界面里面输入:

$ git --version

  git version 2.18.0.windows.1

能出现 git 的版本号, 就表示我们的 git 已经安装成功; 我们后面所有的操作都是基于 Git Bash 来进行的;

安装完成之后, 我们可以使用 git来获取 git 的升级:

$ git clone git://git.kernel.org/pub/scm/git/git.git
初始化配置

git 自带一个 git config 的工具来帮助设置 git 的外观和行为的配置变量;
当安装完 git 之后, 应做的第一件事就是设置用户名和邮件地址;

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

因为 git 是分布式管理系统, git的每一次提交都会记录上用户名和邮箱, 并且不可修改; 需要注意的是 --global 选项只要运行一次, 之后无论在改系统上做任何事情, 都会使用 global 的配置; 当然也可以对某个仓库指定不同的用户名和Email地址.

文本编辑器

git会使用操作系统默认的编辑器, 通常是 vim, 如果想使用其他的编辑器, 可以这样设置:

$ git config --global core.editor emacs
检查配置项

如果想要检查配置项, 可以使用 git config --list 命令来列出所有 git能找到的配置;

$ git config --list

  core.symlinks=false
  core.autocrlf=true
  core.fscache=true
  color.diff=auto
  color.status=auto
  ...

也可以使用 git config <key> 来检查某一项的配置:

$ git config user.name

Git 版本库

版本库又名仓库, 英文名 repository, 可以理解为版本库就是一个目录, 这个目录里面的所有文件都能被 git 管理, 每一个文件的增, 删, 改都会被 git 跟踪, 以便任何时候都可以找到文件记录;

创建版本库有两种方法, 第一种是通过 git init 把当前文件夹变成一个 git 可以管理的仓库; 第二个是直接 clone 一个已有的仓库;

创建版本库

进入到一个空的目录下, 通过鼠标右键的菜单打开 bash 并输入:

$ git init

执行完 init 之后, 文件夹里面会多一个 .git的隐藏文件夹, 如果没看到这个文件夹, 可以设置文件夹属性; 这个目录是 git 用来记录文件版本用的, 一般都不会去修改;

这个时候, 我们只是做了一个初始化的动作, 目录里面的文件还没有被追踪, 可以使用 git add <file> 命令来实现对文件的追踪, 然后执行 commit 提交;

$ git add reademe.txt 
$ git commit -m "首次提交的内容"      

git add 命令就是将文件添加到仓库, 可以一次添加多个文件只需要在参数后面添加文件名然后按 tab键; 也可以一次添加全部文件, 使用 git add * 或者是 git add --all命令;

克隆仓库

如果想要获得已存在的 git 仓库的拷贝, 为某个开源项目贡献自己的一份力量, 这个时候就要用到 git clone <url> 命令:

$ git clone https://gitlab.com/Scorpio-nan/myproject

这将把远程的仓库克隆到本地, 并创建一个 myproject 的 git 仓库;

git 支持多种数据传输协议, 上面的例子就是用的 https:// 协议, 不过也可以使用 git:// 协议或者是 SSH 传输协议;

查看文件状态

git 目录下面的文件都只有两种状态: 已跟踪或者未跟踪. 已跟踪的文件都是指那些已经被纳入版本控制的文件, 在日志中都有它们的记录, 在工作一段时间后, 它们的状态可能处于未修改, 已修改或已放入暂存区.

要查看哪些文件处于什么状态, 可以用 git status 命令; 现在, 我们在目录下面新建一个 README.txt文件, 如果之前并不存在这个文件, 使用 git status就会看到一个未追踪的文件;

$ git status

  On branch master
  No commits yet
  Untracked files:
    (use "git add <file>..." to include in what will be committed)
          README.txt
  nothing added to commit but untracked files present (use "git add" to track)

在上面的文件状态中, 我们可以看到新建的 README文件出现在 Untracked files下面;表示该文件还没有被纳入 git 的版本控制;

添加文件

使用 git add <key> 命令开始追踪一个文件;

$ git add README.txt

现在, 我们再一次查看文件状态, 可以看到文件 README.txt 已经被追踪, 并处于暂存状态;

$ git status

  On branch master
  No commits yet
  Changes to be committed:
    (use "git rm --cached <file>..." to unstage)
          new file:   README.txt

只要在 Changes to be committed 这行下面的, 就说明是已暂存状态.

暂存修改文件

现在, 我们来修改一个已经被追踪的文件; 在 README.txt 里面添加一些内容, 并查看文件状态;

$ git status

  On branch master
  No commits yet
  Changes to be committed:
    (use "git rm --cached <file>..." to unstage)
          new file:   README.txt
  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.txt

Changes not staged for commit说明文件内容已经发生了变化, 但是还没有添加到暂存区, 要更新到暂存区, 需要再一次执行 git add命令;

git status命令的输出十分详细, 但是详细信息有些繁琐, 我们还可以使用 git status -s 或者是 git status --short命令来查看状态;

$ git stauts -s

  AM README.txt
  • ?? 表示新添加, 还没追踪的文件;
  • A 表示新添加到暂存区中的文件;
  • M 表示修改过的文件;
    M 有两个可以出现的位置, 左边表示文件被修改了并放入了暂存区; 右边表示文件被修改了, 但是还没添加到暂存区;
忽略文件

有些时候, 我们必须把文件放到 git 的目录中, 但又不能提交它们; 在这种情况下, 我们可以创建一个 .gitignore 的文件, 列出需要忽略的文件列表, 每次操作的时候 git 就会忽略这些文件;

完整的 .gitignore 配置详见 gitignore;

我们在开发 vue 项目的时候, 如果是用的 gi

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_52506819

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值