git 常用命令和问题
本文档多为个人学习生活中最常用到的命令汇总,和遇见的问题及解决方案,大部分在其他网络博客或文章中都有提及,只是每次碰到相同问题还是要重新查文档,很不方便,因此将遇到的问题汇总至本文档里。方便学习和查找。
推荐资料
设置全局用户名和邮箱
git config --global -l
git config --global user.name "xxx"
git config --global user.email xxx@163.com
设置当前项目用户名和邮箱
git config --local -l
git config --local user.name "xxx"
git config --local user.email xxx@163.com
新建本地仓库并链接远程仓库
git init
git remote add origin git@xxx.git
git branch --set-upstream-to=origin/master master
删除本地仓库
rm -rf .git
提交通用步骤
git add .
git commit -m "first commit"
git pull origin master
git push -u origin master
合并分支
// A想合并B, 先切换到A分支
git checkout A
git merge origin/B
git 暂存管理
git stash 暂存
git stash list 列所有stash
git stash pop 取出暂存
辅助查看命令
git --version 查看git版本
git config --list 查看配置信息
git status 查看状态
git diff 查看差异
git log 查看日志
git remote 查看远程仓库名
git branch -a 查看远程所有仓库
commit 模版
fixed 修复问题
git commit -m"
fix: 解决……的问题
产生原因:
解决方案:
影响范围:
Bug地址:
to #12345678
"
简写:git commit -m"fix: 解决…问题 (fix #12345678)”
feat 新增需求
git commit -m "
feat: 新增需求
需求功能点:
1.
2.
修改内容:
影响范围:
"
提交类型
feat 新增功能
fix 修复bug
docs 修改文档
style 修改样式
refactor 代码重构
perf 性能优化
test 测试用例
chore 构建流程、增加依赖库、工具
revert 代码回滚
merge 代码合并
sync 同步主线或分支Bug
git 常见问题
error: unable to read SDK settings
# unable to read SDK settings for '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'
xcode-select --install
fatal: No such remote 'origin
git remote add origin git@xxx.git
fatal: remote origin already exists
git remote remove/rm origin
git remote add origin git@xxx.git
# or
git remote set-url origin xxxxx
fatal: refusing to merge unrelated histories
git pull origin master --allow-unrelated-histories
# 合并冲突后
git pull origin master
# 合并冲突后
git push --set-upstream origin master
fatal: Authentication failed for
问题场景: 电脑A有添加ssh,可正常使用ssh形式的链接拉取仓库代码;电脑B未添加ssh,想要拉去远端仓库,只能使用http像是链接;在使用http像是链接时需要输入用户名和密码,则很容易出现上述问题。
问题原因: 在使用http形式输入密码时出错,系统缓存了错误密码,且不再重复提示输入密码,而导致每次都提示认证失败。
Window解决: window系统解决方案可参考此文章:https://www.jianshu.com/p/b23cd00cffa6。
Mac解决方案: 本人使用Mac电脑出现上述问题,上网搜索尝试过多种方案,都未成功,后来误打误撞,竟然解决了,这里贴下解决过程。
第一步:在git上创建项目令牌,此处已本人使用的企业版coding为例 
第二步:使用项目令牌拼接如下格式url
const setting = {
tokenname = '项目令牌用户名',
token = '项目令牌密码',
platform = 'e.coding.net',
username = 'git用户名',
repo = '仓库名称',
}
const remote = `https://${setting.tokenname}:${setting.token}@${setting.platform}/${setting.username}/${setting.repo}.git`;
第三步:git命令使用新url直接clone代码或者重新设置remote后pull、push代码均可正常使用。查看Mac钥匙串程序,可以看到如下凭证。 