一、使用背景
- 默认修改配置文件时 都是在终端通过vim命令修改编辑,图形化页面不是很友好。
- 使用sublime打开修改的话可视化页面很友好,方便修改
二、初始化安装sublime text
1、安装sublime text
- 官网下载sublime text,免费的。
2、打开终端配置subime text
- 输入以下指令
sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl
3、快速使用
1)打开文件夹
subl matecloud
2) 打开文件 pom.xml
subl pom.xml
三、配置git默认编辑器为sublime text
1、打开zshrc, cmd+shift+G 输入以下路径:
~/.zshrc
2、添加配置信息
export GIT_EDITOR="subl -w"
3、让配置信息立即生效
source ~/.zshrc
4、此时git修改的话默认打开sublme text
四、一个例子:已提交的commit 修改用户名和邮箱
- 通过修改配置文件可以修改用户名和邮箱,但是已提交的commit的用户名和邮箱不能修改
- 注意按以下方法修改已提交commit的用户名和邮箱会改变原有已提交信息的提交时间为当前修改时的最新时间!如需修改参考文章最后:#更改git提交的日期#
1、定位到项目git所在文件夹
cd 项目名
2、设置需要修改的记录条数
- 往前推3条修改就是输入
git rebase -i HEAD~3
- 如果超出了总提交次数会报错如下
git rebase -i HEAD~20
致命错误:无效的上游 'HEAD~20'
- 这时候如果配置了默认使用sublime text来进行编辑的话会自动使用sublime text 打开编辑,如果没有配置默认在终端通过vim命令修改内容
## 3、把pick修改为edit,保存退出
- 终端显示
4、修改用户名和邮箱
- 输入以下指令,直接修改最近一条的用户名和邮箱
git commit --amend --author=' hh<hh@xxx.com>' --no-edit
- 注意这个是一条一条改的,因此改下一条需要重复上面操作
git rebase --continue
- 继续重复,直到输入 git rebase --continue 提示 致命错误:没有正在进行的变基?
git commit --amend --author=' hh<hh@xxx.com>' --no-edit
git rebase --continue
5、最后把提交记录同步到服务器
git push --force
6、再次验证发现已经修改了
- 注意 提交时间会变成当前提交时间!!!
7、命令总结
1)修改用户名邮箱:
# 第一步,(n)代表要展示的提交次数
git rebase -i HEAD~n
# 第二步
编辑提交信息,把`pick` 改成 `edit`,保存退出
# 第三步
git commit --amend --author="作者 <邮箱>" --no-edit
# 第四步
git rebase --continue
# 第五步
git push --force
2)更改git提交的日期:
- 注意:强制推送会覆盖远程仓库中原有的提交记录,请谨慎操作)。
注意:以上步骤仅适用于尚未推送到远程仓库的提交记录。如果你已经将这些提交推送到远程仓库,更改提交日期将会破坏项目的历史记录,不推荐使用此方法。
# 第一步:使用git命令行工具进入你的项目目录。查看提交记录,并找到你想要更改日期的提交的哈希值。
git log
# 第二步:进入交互式的rebase编辑模式,将<commit-hash>替换为你想要更改日期的提交的哈希值。
git rebase -i <commit-hash>
# 第三步:
在编辑器中找到你想要更改日期的提交行,将pick改为edit。保存文件并退出编辑器。
# 第四步:将<new-date>替换为你想要设置的新的提交日期。这将会修改提交的时间戳。
GIT_COMMITTER_DATE="<new-date>" git commit --amend --no-edit
# 第五步:
重复执行git rebase --continue命令直到完成所有修改。
# 第六步:将修改后的提交推送到远程仓库
git push --force