专栏首页禅林阆苑git学习总结01 — 初始化
原创

git学习总结01 — 初始化

git学习总结01 — 初始化

TOC

Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: github.com/csxiaoyaojianxian Email: sunjianfeng@csxiaoyao.com

1. 起步

最初学习 git 已是多年前在校期间,用于课程设计,场景也相对简单。实习后由于所在公司一直使用 svn,缺少协作实践场景,时间久了 git 知识已逐渐淡忘。公司从去年开始已经在内部全面推广 git,随着项目规模不断扩大,git 操作方面已明显力不从心,因此再次系统化学习 git,写此笔记以总结备忘。

本文分3篇:《初始化》、《版本控制》、《分支管理》进行总结,因为版本控制和分支管理是 git 的核心,已经单独成篇,在版本控制一篇中最后总结了8种常见的场景,在分支管理一篇中总结了团队协作模式和 git 工作流,剩下的细碎的内容放在了第一篇初始化中。

2. 初始化配置

2.1 设置签名 config

安装完 git 后需要设置签名,签名分为项目级别和系统用户级别。

项目/仓库级别:

$ git config user.name csxiaoyaojianxian
$ git config user.email sunjianfeng@csxiaoyao.com

仅在当前本地库有效,信息保存在 ./.git/config 文件。

系统用户级别:

$ git config --global user.name csxiaoyaojianxian
$ git config --global sunjianfeng@csxiaoyao.com

信息保存在 ~/.gitconfig 文件。

注意:

这里的用户名和邮箱仅用于区分不同开发人员身份,和登录远程库的账号没有任何关系

2.2 初始化本地库 init

$ git init

2.3 配置忽略文件 .gitignore

代码提交需要忽略垃圾文件和敏感信息文件,可以配置 .gitignore,参考 https://github.com/github/gitignore

# 检查验证规则
$ git check-ignore -v config.js
# 使用 -f 参数强制添加
$ git add -f config.js

3. 搭建 gitlab

git 分工作区 (Working Directory)暂存区 (Stage / Index)本地库 (Repository)远程库。远程库除了使用 github 等外,还可以自己搭建。gitlab 社区版安装指引 <https://about.gitlab.com/install/>,安装完成后初始化配置 gitlab:

# 启动gitlab服务
$ gitlab-ctl reconfigure
$ gitlab-ctl start
# 停止gitlab服务
$ gitlab-ctl stop

4. 文件操作 add & commit

快照流文件管理:每次 commit 提交更新时 git 都会对当前的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改则只保留一个链接指向之前存储的文件。

# 查看工作区、暂存区状态
$ git status
# 工作区的"新建/修改"添加到暂存区
$ git add [file name]
# 暂存区删除对指定文件的追踪
$ git rm --cached [file name]
# 将暂存区的内容提交到本地库
$ git commit -m "commit message" [file name]
# 简化命令: 跳过 add 所有工作区文件,直接 commit
$ git commit -a
$ git commit -am "commit message"
# 编辑上次提交信息
$ git commit --amend -m "更好的提交日志"
# 在上次提交中附加一些内容,保持提交日志不变
$ git add . && git commit --amend --no-edit
# 空提交,可用来重新触发 CI 构建
$ git commit --allow-empty -m "chore: re-trigger build"

5. 文件差异比较 diff

# 工作区 / 暂存区 比较
$ git diff [file name]
# 工作区 / 暂存区 比较多个
$ git diff

# 工作区 / 本地库 比较
$ git diff [本地库中历史版本] [file name]
$ git diff HEAD^ test.txt

# 两个分支文件差异比较
$ git diff master..dev

6. 命令一览

# 帮助命令
$ git help <command>

参考:

https://dev.to/lydiahallie/cs-visualized-useful-git-commands-37p1

https://dev.to/maxpou/git-cheat-sheet-advanced-3a17

https://gitee.com/liaoxuefeng/learn-java/raw/master/teach/git-cheatsheet.pdf

https://juejin.im/post/5e9e49356fb9a03c917fe7fd

https://www.liaoxuefeng.com/wiki/896043488029600

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • git学习总结02 — 版本控制

    版本的前进后退本质是 HEAD 指针的移动,有三种移动指针进行版本控制的方式:索引、^、~。

    CS逍遥剑仙
  • git学习总结03 — 分支管理

    merge 分支合并有 fast-forward 和 no-fast-forward 两种模式。下图 dev 合入 master,默认触发快进模式(fast-f...

    CS逍遥剑仙
  • MongoDB学习整理

    MongoDB 是介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富,最像关系数据库的,语法类似javascript面向对象的查询语言,是一个面...

    CS逍遥剑仙
  • 我使用最频繁的10个git命令

    songleo
  • 常用的 Git 命令清单

    一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。

    杰哥的IT之旅
  • git命令中不常用,但有时候又不得不用的一些操作【工具】

    在项目的主目录中打开.gitignore文件,若没有则进行创建,windows下无法创建.开头文件,自行解决

    sinnoo
  • 30分钟吃掉Git和GitHub常用操作

    GitHub是一个非常流行的全球代码托管平台,基于Git版本控制技术实现,同时GitHub也是一个活跃的开发者交流社区。许多的开源项目都在GitHub上发布。例...

    lyhue1991
  • 30分钟看懂Git和GitHub常用操作

    GitHub是一个非常流行的全球代码托管平台,基于Git版本控制技术实现,同时GitHub也是一个活跃的开发者交流社区。许多的开源项目都在GitHub上发布。例...

    AI算法与图像处理
  • git常见问题处理

    Update: git fetch upstream git rebase upstream/master

    Spaceack
  • 从一个实战的角度来理解 Git 原理~

    我之前写了一篇文章 《深入理解 Git 》https://zhuanlan.zhihu.com/p/71577255。

    DevOps时代

扫码关注云+社区

领取腾讯云代金券