加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

第一本Git命令教程(1) - 准备

2020/02/06
62
阅读需 6 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

今天是 Git 系列课程第一课,痞子衡给大家要讲的是创建仓库的准备工作。

1. 建仓库 git init

第一步是创建一个空仓库,这是一切操作的前提。

// 打开 git bash 命令行,切换到指定目录下

jay@pc MINGW64 /

$ cd /d/my_project/

// 在指定目录下创建存放 repo 的文件夹,示例为 gittest

jay@pc MINGW64 /d/my_project

$ mkdir gittest

// 切换到 gittest 目录下

jay@pc MINGW64 /d/my_project

$ cd gittest/

// 使用 git init 命令创建一个空仓库

jay@pc MINGW64 /d/my_project/gittest

$ git init

Initialized empty Git repository in D:/my_project/gittest/.git/
  

空仓库创建完成后 gittest 文件夹下会生成一个 .git 隐藏文件夹。仓库默认包含一个主支,即 master,默认操作都是在主分支 master 上进行的。

2. 配置仓库信息 git config

有了空仓库,我们便可以进行后续提交操作,但在提交之后需要做一些必要配置,Git 的配置从上到下分三层 system/global/local,此处我们仅用 local 选项对当前仓库操作做配置(即配置只对当前仓库有效)。

// 设置提交代码时的 local 用户信息(用户名,email 地址)

jay@pc MINGW64 /d/my_project/gittest (master)

$ git config --local user.name "Jay Heng"

jay@pc MINGW64 /d/my_project/gittest (master)

$ git config --local user.email "hengjie1989@foxmail.com"

// 查看 local 层次的 config 参数配置是否生效

jay@pc MINGW64 /d/my_project/gittest (master)

$ git config --local --list

core.repositoryformatversion=0

core.filemode=false

core.bare=false

core.logallrefupdates=true

core.symlinks=false

core.ignorecase=true

user.name=Jay Heng

user.email=hengjie1989@foxmail.com
  

设置好 user.name, user.email 两个必要用户信息后,后续任何提交都会默认包含此用户信息。

3. 设置过滤文件 .gitignore

有了仓库,我们便可以在 gittest 文件夹下的工作区做文件增删修改工作了,但很多时候,我们只在意开发过程中的源文件,并不需要管理自动产生的其他临时文件。这时候我们便需要一个过滤文件,在这个文件中设置过滤规则,让 Git 能够自动过滤掉那些临时文件,这个文件便是 .gitignore 文件。

// 创建空的 gitignore 文件

jay@pc MINGW64 /d/my_project/gittest (master)

$ touch .gitignore

// 文本编辑器打开 gitignore 文件,写入过滤规则

/project/demo.o       #过滤具体文件 demo.o

/project/settings/    #过滤整个 settings 文件夹

*.o                   #过滤所有 .o 文件
  

上面仅列举了 3 种常用的过滤规则,可根据下面的过滤配置语法组合出任意你想要的过滤规则。

以斜杠“/”开头表示目录

以星号“*”通配多个字符

以问号“?”通配单个字符

以方括号“[]”包含单个字符的匹配列表

以叹号“!”表示不忽略(跟踪)匹配到的文件或目录
  

如果希望设置的过滤规则不仅仅对本地仓库的操作有效,也希望对其他机器上该仓库的操作有效,可以 .gitignore 提交到仓库中并且推送到远程,提交及推送操作后续会介绍。

相关推荐

电子产业图谱

硕士毕业于苏州大学电子信息学院,目前就职于恩智浦(NXP)半导体MCU系统部门,担任嵌入式系统应用工程师。痞子衡会定期分享嵌入式相关文章