Git小妙招
Git
git 入门
git tag
git tag 的用法及意义 - Zioyi - 博客园 (cnblogs.com)
git add .
git commit -m [message]
git pull
git push
git 提交前缀
提交信息基本模板
feat: 新功能
fix: 修复问题
docs: 修改文档
style: 代码格式(不影响代码运行的格式变动,注意不是指 CSS 的修改)
refactor: 重构(既不是新增功能,也不是修改 bug 的代码变动)
perf: 提升性能
test: 增加修改测试用例
deps: 升级依赖
chore: 日常工作
如果 commit 信息都按照一定的模式进行提交,那么我们就会很容易找到自己想要的信息,模板参考如下:
<type>[(scope)]: <subject> [<ISSUE_ID>]
style:2.9.1版本设计走查内容 #123455
fix: 修改首页图片显示bug #123456
feat:新增税企互动2.9.1版本功能 #122345
git revert 与 git reset
git revert 和 git reset 的区别及使用方法 - 知乎 (zhihu.com)
git reset HEAD^ 回到上一级(此时代码在修改区)
git revert HEAD 重做当前代码(无了,就是无了)
简写
—interactive 与 -i
移动当前 HEAD git checkout <name>
查看当前用户
git config user.name //查看当前git的用户名
git config user.email //查看当前git的邮箱
git config --global user.name'drk' //修改当前的用户名
git config --global user.email 'drk@163.com' //修改当前的邮箱
设置公司账号
git config --global user.email 'wangmengyuan@nnuo.com'
写错 commit 时的救星以及 bash 控制台的各种操作
git commit —amend
git commit --amend 修改 git 提交记录用法详解 - 知乎 (zhihu.com)
i 输入模式
:wq 写入并退出
git 实战中很慢
192.30.253.112 github.com
151.101.184.133 assets-cdn.github.com
151.101.185.194 github.global.ssl.fastly.net
140.82.112.3 github.com
199.232.69.194 github.global.ssl.fastly.net
给你一颗后悔药 git reset —soft HEAD^
命令使用
学会 reset --soft
之后,你只需要:
# 恢复最近一次 commit
git reset --soft HEAD^
reset --soft
相当于后悔药,给你重新改过的机会。对于上面的场景,就可以再次修改重新提交,保持干净的 commit 记录。
以上说的是还未 push 的 commit。对于已经 push 的 commit,也可以使用该命令,不过再次 push 时,由于远程分支和本地分支有差异,需要强制推送 git push -f
来覆盖被 reset 的 commit。
还有一点需要注意,在 reset --soft
指定 commit 号时,会将该 commit 到最近一次 commit 的所有修改内容全部恢复,而不是只针对该 commit。
作者:出来吧皮卡丘
链接:https://juejin.cn/post/7071780876501123085
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
git stash
git stash (save[])
git pull
git stash pop
git cherry-pick
git cherry pick 教程 - youxin - 博客园 (cnblogs.com)
超神了这个摘樱桃操作 注意是左开右闭
https://juejin.cn/post/7155759979717197860
git cherry-pick 2ed00fdb0c925ad9cbf263b8a9e88fa33ff2cf16..b62a94ccea2110b9ed64076c64817bf489a154a0
左开右闭 1 先提交 100 后提交
git cherry-pick (commitid1..commitid100]
看清楚版本啊啊啊,哪个
git merge 用法
分支合并
一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。 你可以使用 git merge
命令将任何分支合并到当前分支中去:
$ git branch
* master
newtest
$ ls
README test.txt
$ git merge newtest
Updating 3e92c19..c1501a2
Fast-forward
runoob.php | 0
test.txt | 1 -
2 files changed, 1 deletion(-)
create mode 100644 runoob.php
delete mode 100644 test.txt
$ ls
README runoob.php
以上实例中我们将 newtest 分支合并到主分支去,test.txt 文件被删除。
压缩合并
实际体验感觉不如 gitlab 自带的 merge 里的合并好用
git merge <branch-name> --squash
git branch -d
不能在当前分支上删除
修改已提交的 commit
git commit --amend
进入 vim 界面,按下o
开始编辑,编辑完成后按下esc
退出编辑,:q
直接退出,:wq
保存并退出
https://www.zhihu.com/tardis/zm/art/401811121?source_id=1005
BUG
fatal: Exiting because of unfinished merge
merge 中途太多 conflict 就选择直接退出,再 git pull 会报上述错误
(放弃本地修改):
git reset --hard origin/master
Git 命令问题:fatal: Exiting because of unfinished merge - 安静的女汉纸 - 博客园 (cnblogs.com)
2024 年 10 月 28 日
如果本地有删除修改上的 stash,可以先不管,直接将 stash apply 一下,此时分支上是干净的
prettier 报错 CRLF
原因:VSCode 的 CRLF 与 LF 冲突
解决方法:文件-首选项-Eol 选择/n 或者拉取项目之前
git config --global core.autocrlf false
配置全局 LF
[VSCode CRLF 与 LF 冲突解决 - 掘金 (juejin.cn)](https://juejin.cn/post/7080793414245023757)
添加 SSH 密钥
换了电脑后 git 操作每次都要输入账户密码 这里绑定 gitee 的 SSH
https://gitee.com/profile/sshkeys
github 加速
watt toolkit
微软商店下载
拉取代码时报错 SSL 证书未验证
git config user.email
查看当前登录邮箱是否是可用
git config --global http.sslVerify false
关闭证书校验
执行拉取代码,直接
设置代理解决 github 被墙
mac 上一直遇到 git pull 443 的问题,windows 上可以用 watt toolkit 加速解决。mac 上我开了梯子却还是 443,遂搜索相关问题,发现需要设置代理。
git config --global http.https://github.com.proxy socks5://127.0.0.1:clash端口号