配置
|
|
初始化
|
|
提交修改
|
|
查看状态、比对
|
|
查看历史版本、历史操作
|
|
git log –pretty=format 参数
%H
- 提交对象(commit)的完整哈希字串%h
- 提交对象的简短哈希字串%T
- 树对象(tree)的完整哈希字串%t
- 树对象的简短哈希字串%P
- 父对象(parent)的完整哈希字串%p
- 父对象的简短哈希字串%an
- 作者(author)的名字%ae
- 作者的电子邮件地址%ad
- 作者修订日期(可以用 –date= 选项定制格式)%ar
- 作者修订日期,按多久以前的方式显示%cn
- 提交者(committer)的名字%ce
- 提交者的电子邮件地址%cd
- 提交日期%cr
- 提交日期,按多久以前的方式显示%s
- 提交说明
版本回退、前进
|
|
撤销修改
|
|
删除与恢复
git rm/add <file>
|
|
清理工作区
未 track 也未 ignore 的文件或文件夹(如各种临时 .swp, .patch 文件等)
|
|
关联远程仓库
本地到远程
|
|
远程到本地
|
|
分支管理
创建、切换、查看、合并、删除
|
|
解决合并冲突
合并时报错“分支发生冲突”,首先 vim 相应文件,修改冲突位置,然后按照 git add/commit 重新提交,最后删除多余分支即可。
|
|
开发流程
master 分支
- 发布稳定版本dev 分支
- 发布开发版本<developer name>分支
- 个人开发分支(个人开发完成将该分支并入 dev,同时保留该分支,继续开发)
分支管理
合并后删除分支也在 log 中保留分支记录
|
|
Bug 分支管理
软件开发中,bug 就像家常便饭一样。有了 bug 就需要修复,在 Git 中,由于分支是如此的强大,所以每个 bug 都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。
|
|
Feature 分支管理
软件开发中,总有无穷无尽的新的功能要不断添加进来。添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个 feature 分支,在上面开发,完成后,合并,最后,删除该 feature 分支。
|
|
协作与分支推送
- User 1
|
|
- User 2
|
|
- User 1
|
|
标签管理
常用于版本管理 - 查看、创建、操作
|
|
rebase
rebase
在日常中常用功能主要是两个,多人协同开发定期 rebase master 以及压缩某分支多个 commit
git rebase master
常见于多人开发,每个开发人员从 master checkout 出自己的分支,开发一段时间后提交至 master 之前最好 rebase 一下防止冲突,就算真有冲突在本地解决好过强制提交,开发流程中尽量保证 master 的干净整洁
举个例子:
|
|
打 patch(补丁)
生成 diff patch 文件
git 可以识别 diff 文件
|
|
利用 apply 打 patch
|
|
利用 –format-patch 生成 patch
带 commit 信息
|
|
利用 am 打 patch
|
|
bundle(打包)
- 该命令会将 git 工程打包, 默认情况下会打包所有 commit 记录和 track 的文件
- 不同于简单粗暴 tar.gz 打包整个文件夹, bundle 只打包那些 push 过的记录
- 如某 git 工程下存在 .build 构建后的目录, 而 .gitignore 又忽略了该文件夹
- 如果利用 tar.gz 打包则会将那些忽略的文件文件夹一并打包, 可能会造成压缩包极大的臃肿
- 而又不想仅仅为了打个包就删除整个 build 目录(如重新 build 时间成本太大)
- 那么就可以使用 bundle 进行打包, 该命令只打包 track 过的文件
- 并且像 url 那样直接调用 git clone 来重建
|
|
bundle 也可以打包指定的区间, 至于提交区间有多种表示方式
|
|
子模块
|
|
其他配置
配置颜色
|
|
配置别名
|
|
.gitignore
配置文件
vim .gitignore
|
|
文件生效后
|
|
References
目录
相关文章
Git 服务器安装
安装 git 1 apt-get install git 创建 git 专用用户 创建用户 git (如果希望多个账户密码可以添加一个组,然后再创建不同的用户) 1
2016-5-26
Core Dump
Core Dump 设置 生成 core 默认是不会产生 core 文件的 1 ulimit -c unlimited # -c 指定 core 文件的大小,unlimited 表示不限制 core 文件
2017-12-21
GDB
帮助信息 1 2 3 4 5 6 7 help # 列出命令分类 help running # 查看某个类别的帮助信息 help run # 查看命令 run 的帮助 help info # 列出查
2017-12-10
Vim
光标移动 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
2016-3-2
JavaScript
基础知识 类型 基本类型 最新的 ECMAScript 标准定义了 8 种数据类型,分别是 string number bigint boolean null undefined symbol (ECMAScript 2016新增) 所有基本类型
2016-2-26
Go
安装 前往 官网 下载 go1.19.4.linux-amd64.tar.gz 1 2 3 tar -C /usr/local/ -xzf go1.19.4.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin go version 看到版本号代表 go 安装成功 编译器命令 1 2 3 4 5 6 7 8 9 10 11 12
2019-12-30
Redis
启动 Redis 1 2 3 4 redis-server /path/redis.conf # 指定配置文件启动 redis redis-cli # 开启 redis 客户端 systemctl restart redis.service # 重启 redis systemctl status redis # 检查 redis 运行状态 字符串 1 2
2019-12-24
C#
数据类型 类型 大小 举例 String 2 bytes/char s = “reference” bool 1 byte b = true char 2 bytes ch = ‘a’ byte 1 byte b = 0x78 short 2 bytes val = 70 int 4 bytes val = 700 long 8 bytes val
2019-7-13
Python
常规 Python 对大小写敏感 Python 的索引从 0 开始 Python 使用空白符(制表符或空格)来缩进代码,而不是使用花括号 帮助 获取主
2018-10-6
Nginx
Nginx 常用命令 官方文档 1 2 3 4 5 sudo nginx -t # 检测配置文件是否有错误 sudo systemctl status nginx # nginx 当前的运行状态 sudo systemctl reload nginx # 重新加
2018-2-12
赞赏
Wechat
Alipay