一、错误汇总
- fatal: Not a git repository (or any of the parent directories): .git**
当前目录没有初始化 过,使用git init
- [rejected] master -> master (fetch first)**
先同步远程仓库: git pull origin master
-
git 公钥权限问题Permission denied (publickey,keyboard-interactive).
解决方法:首先确认ssh相关的命令(使用git客户端)生成的密钥是否存在于~/.ssh/ 目录下,其次保存密钥的文件使用默认名称,不要自定义。 -
git stash pop时—— error: add_cacheinfo failed to refresh for path ’ **** '; merge aborting.
-
push错误:git push rejected by remote (pre-receive hook declined)
原因:根据git错误信息进一步排查,commit 描述不符合规范。
解决方法:ammend commit描述信息。
注意:
1、不要仅仅考虑权限问题,特别是在以往情况都能正常push的情况下,不可能是权限问题。
2、在webstorm 执行 push报错的话,它在右下角“Event Log”的提示只有“git push rejected by remote”,应该打开Git面板下的控制台(Console)查看错误的详细信息。
二、使用场景
1.下载指定版本的GitHub代码
方法一:
git tag
git checkout 版本号
方法二:进入GitHub项目commit tab页,点击指定提交记录进入对应项目版本页面。
2.修改
改变最近的提交信息:
git commit --amend
git reflog
git 查看某个分支是从哪个分支拉出来的?
1、git reflog show 分支名 --在Windows类型的console下也能使用。
2、git reflog --date=local | grep 分支名 – 在git bash中使用,否则grep识别不了。
date格式类型:
除了–date=(relative|local|default|iso|iso-strict|rfc|short|raw),您还将拥有:–date=(relative-local|default-local|iso-local|iso-strict-local|rfc-local|short-local|raw-local)
husky > pre-commit hook failed (add --no-verify to bypass)
解决方法一:git commit ----no-verify
尝试解决方法二:重新从远程checkout对应分支,覆盖;或者删除本地分支再checkout。在webstorm试过,貌似可行。
三、注意事项
- 不要直接从压缩包将代码拖拽出来,而是使用解压缩软件解压代码压缩包。因为.git文件夹是用来更新代码所必需的。