目录
2 修改最近一次提交内容或注释(git commit --amend )
一. 安装教程
安装教程https://mp.csdn.net/mp_blog/creation/editor/141688528
二. git配置
1. 查看git配置参数
2. 设置邮箱和用户名
3. SSH配置
SSH配置需要生成公钥(http协议忽略生成公钥)
4. 配置git远程库公钥
- 通过【设置】->【ssh公钥】进入码云的如下界面,黏贴公钥
- 把刚才在git bash里生成的公钥黏贴在公钥里点确定就好了
5. 编码设置
# 注释:该命令表示提交命令的时候使用utf-8编码集提交
git config --global i18n.commitencoding utf-8
# 注释:该命令表示日志输出时使用utf-8编码集显示
git config --global i18n.logoutputencoding utf-8
# 注释:设置LESS字符集为utf-8
export LESSCHARSET=utf-8
三. git 提交流程
1. 整体操作流程图
2. Git仓库包含5个区域
- 工作区
- 暂存区
- 本地仓库
- 本地远程库镜像
- 远程仓库
3. 下载、提交、更新命令
3.1. 下载
代码示例
# 克隆 master 分支到本地
git clone -b master https://test.jjj.com
# 切换分支到 test
git checkout test
3.2. 提交
代码示例
# 推送所有变更的文件到缓存区
git add .
# 提交变更文件到本地库
git commit -m "提交日志"
# 推送本地仓库到远程仓库
git push
3.3. 更新(两种方式)
四. git 冲突解决
git 冲突的类型和解决方法,git冲突有两种类型: 内容冲突 和 树冲突。内容冲突 是因为不同用户修改了同一文件的同一区域产生的;树冲突 是因为不同用户把同一文件改为不同的名字而产生。
1. git 冲突的类型及合并策略
2. git pull --rebase 冲突
2.1 develop 更新时内容冲突
2.2 内容冲突处理
2.3 树冲突解决
3. cherry-pick冲突
注意: cherry-pick 空提交时,会直接退出pick状态; 拣选连续的多个提交命令:git cherry-pick aa^..bb。
示例
目前有两个分支 develop 和 master, 想把 develop 的提交拣选到 master上
4. git merge冲突
五. 修改历史提交
1. 单个文件回退到某个历史版本
1.1 查看文件修改记录:git log test.txt
1.2 回退文件到 d46d797e50c47bc 版本:git checkout d46d797e50c47bc test.txt
2. 修改最近一次提交内容或注释(git commit --amend )
注意:不管是修改了内容或者是提示,commitID 都会改变
3. 修改某次历史提交(git rebase -i)
命令:git rebase -i [commitID] (其中commitID是要修改的提交的前一次ID)
此命令的交互界面命令如下
3.1. 合并提交(s)
3.1.1 查看提交日志,想把C提交合并到B提交上
3.1.2 运行 git rebase -i -A 后,在交互界面输入s,保存退出
弹出变基交互界面
3.1.3 保存后弹出包含两次提交的提交信息如下:其中以#开始的内容时注释,不带#的是信息
根据需要修改提交信息如下,然后保存退出
3.1.4 再次查看日志,前两个提交合并到一起了
3.2. 修改提交信息(r)
注意:修改第一次提交的命令是 git rebase -i --root
3.2.1 查看提交信息
3.2.2 变基到要修改的提交的前一个提交上
git rebase -i 0138a47
在弹出的交互界面里,把 pick字段改成r
保存后,弹出交互的提交信息界面,在这个界面里修改要提交的信息即可
3.2.3 再次查看提交信息,提交信息已经改动
3.3. 修改提交的内容(e)
3.3.1 查看要修改的提交的具体内容
修改下图中id为9490d07的提交, 通过git show查看到这个提交对文件README.md进行了修改
3.3.2 使用命令 git rebase -i 0138a47 变基到要修改提交的前一次提交上
然后弹出 rebase 的操作选项,如下图,把要修改的提交前的参数修改成e
3.3.3 保存交互界面后,对文件进行修改
Vi README.md
对文档添加如下信息,然后进行保存
3.3.4 对改动进行保存
git add README.md
git commit --amend
git rebase --continue
查看改变的提交
3.4. 删掉提交(d)
3.4.1 git log --pretty=oneline -3
3.4.2 git rebase -i 0138a47 #变基
然后弹出交互界面里输入d保存
然后查看日志,刚才的提交的信息就没了