TOC
Write By CS 逍遥剑仙
我的主页: http://www.csxiaoyao.com/
- GitHub: https://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/> 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://juejin.im/post/5e9e49356fb9a03c917fe7fd
- https://www.liaoxuefeng.com/wiki/896043488029600
来源: https://www.qcloud.com/developer/article/1635678