本文主要是介绍Git_Tips,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- Git
- 安装
- Github新增ssh
- 强制覆盖本地
- 删除Git凭据
- 常用操作
- 分支操作
- 远程操作
- 日志操作
- 标签操作
- Tips
- 克隆某分支
- 强制推送分支到master
- 跟踪空文件夹
- 推送多个仓库
- 分支迁移
- GitHub
- Q&A
- The authenticity of host 'github.com (192.30.255.112)' can't be established
- error:failed to push some refs to
- error: GH007: Your push would publish a private email address.
- Filename too long
- emoji指南
Git
安装
# 安装
## Ubuntu
apt-get install git
## CentOS
yum install -y git# 配置
#--global参数 表示该机器all都使用
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
Github新增ssh
# known_hosts删除github对应的记录(疑难杂症)# ssh
ssh-keygen -t ed25519 -C 'v@v'# 目录查看
cd ~/.ssh# 密钥查看
cat *.pub# 复制添加到Github
https://github.com/settings/keys
SSH keys -> New SSH key
强制覆盖本地
git fetch --all && git reset --hard origin/master && git pull
删除Git凭据
# Windows
## 凭据管理器-删除Windows凭据
control keymgr.dll
常用操作
#克隆项目
git clone https://github.com/medcl/elasticsearch-analysis-ik#恢复本地错误操作
git reflog
git reset --hard HEAD@{1}#检出
git checkout #添加所有未包含文件
git add *#提交本地
git commit -am ""#拉代码
git pull --rebase#推送远程仓库
git push
分支操作
##
#查看本地分支
git branch#查看远程分支
git branch -r#查看所有分支
git branch -a
#本地创建新的分支
git branch [branch name]
# ex
git branch develop
# 切换到新的分支
git checkout [branch name]
# ex
git checkout develop
# 创建同时切换分支
git checkout -b [branch name]
# 等同于
git branch [branch name]
git checkout [branch name]
# 将新分支推送远程仓库
git push origin [branch name]
# ex
git push origin develop:develop
# 拉取远程的develop分支
git fetch origin develop# 本地创建分支dev并切换到该分支
git checkout -b develop origin/develop
#删除本地分支
git branch -d [branch name]
#删除远程分支
git push origin :[branch name]
# 撤销已push到远端的commit
# 使用 --hard 参数会抛弃当前工作区的修改
# 使用 --soft 参数的话会回退到之前的版本,但是保留当前工作区的修改,可以重新提交
git reset --hard <版本号>#覆盖掉远端的版本信息,使远端的仓库也回退到相应的版本,需要加上参数--force
git push origin master --force
远程操作
#列出所有远程主机
git remote#列出所有远程主机以及网址
git remote -v# 查看该主机的详细信息。
git remote show <主机名># 添加远程主机
git remote add <主机名> <网址># 删除远程主机
git remote rm <主机名># 远程主机的改名
git remote rename <原主机名> <新主机名>
日志操作
# 统计某一时间段内每个人的代码量(修改时间)git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --since ==2021-10-1 --until=2021-11-30 --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done# 查看git上的个人代码量(修改用户名)
git log --author=username --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -# 查看仓库提交者排名前3
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 3# 贡献值统计
git log --pretty='%aN' | sort -u | wc -l# 提交数统计
git log --oneline | wc -l# 用户所有提交次数排名(包括提交次数)
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r# 时间段内某用户的提交数(修改用户名)
git log --author=username --since="2021-08-01" --no-merges | grep -e 'commit [a-zA-Z0-9]*' | wc -l
标签操作
# 列出已有的标签
git tag
git tag -l 'v0.0.*'# 创建标签
git tag -a v0.0.1 -m "first version"# 查看标签信息与对应的提交信息
git show v0.0.1# 推送远程仓库标签
git push origin v0.0.1
git push origin --tags# 后期打标签,在命令的末尾指定提交的校验和(或部分校验和)
git log --pretty=oneline
git tag -a v1.2 9fceb02# 删除标签
git tag -d v0.0.1
git push origin :refs/tags/v0.0.1# 检出标签
git checkout v0.0.2
# 注意:如果你做了某些更改然后提交它们,标签不会发生变化,但你的新提交将不属于任何分支,并且将无法访问,除非确切的提交哈希。因此,如果你需要进行更改——比如说你正在修复旧版本的错误——这通常需要创建一个新分支
Tips
克隆某分支
git clone -b ace https://git.com/test/test.git
强制推送分支到master
# 将develop分支强制推送合并至master
git push origin develop:master -f
跟踪空文件夹
# Git不跟踪空文件夹,添加.gitkeep文件
touch .gitkeep
推送多个仓库
方法1
# 查看远程仓库地址
git remote -v# 添加远程仓库
git remote set-url --add origin https://github.com/****s.git
方法2
# 直接更改.git/config配置文件
[remote "origin"]url = https://****admin.gitfetch = +refs/heads/*:refs/remotes/github/*url = https://****admin.git
分支迁移
# 创建
git remote add origin2 master# 设置远程地址
## ssh
git remote set-url origin2 git@*****.git## http
git remote set-url origin2 https://*****# 推送
git push origin2# 移除多余远程
git remote rm origin2
GitHub
git remote add origin https://****.git
# 建立关联
## 远程分支名字 本地分支名字
git branch --set-upstream-to=origin/master master# 查看关联
git branch -vv# 分支上有东西先pull
git pull --rebase# 推送
git push
Q&A
少了一个known_hosts文件,本来密钥文件应该是三个,现在是两个,便报了这样的错误,此时选择yes回车之后,便可,同时生成了缺少了的known_hosts文件:Are you sure you want to continue connecting (yes/no)?
//输入yes,回车
在github版本库进行在线修改,或直接在github上的某个库中添加readme文件或者其他什么文件,但是没有对本地库进行同步。这时当你再次有commit想要从本地库提交到远程的github库中时就会出现push失败的问题。
# 远程库同步到本地库
git pull --rebase origin master
由于设置了邮箱为隐私邮箱,有两种解决方式:
在GITHUB上setting-Emails-Keep my email addredd private去掉勾选。
或者命令行中配置邮箱为username@users.noreply.github.com
git config --global user.email ‘username@users.noreply.github.com’
git config --system core.longpaths true
emoji指南
emoji | emoji 代码 | commit 说明 |
---|---|---|
🎉 (庆祝) | :tada: | 初次提交 |
🆕 (全新) | :new: | 引入新功能 |
🔖 (书签) | :bookmark: | 发行/版本标签 |
🐛 (bug) | :bug: | 修复 bug |
🚑 (急救车) | :ambulance: | 重要补丁 |
🌐 (地球) | :globe_with_meridians: | 国际化与本地化 |
💄 (口红) | :lipstick: | 更新 UI 和样式文件 |
🎬 (场记板) | :clapper: | 更新演示/示例 |
🚨 (警车灯) | :rotating_light: | 移除 linter 警告 |
🔧 (扳手) | :wrench: | 修改配置文件 |
➕ (加号) | :heavy_plus_sign: | 增加一个依赖 |
➖ (减号) | :heavy_minus_sign: | 减少一个依赖 |
⬆️ (上升箭头) | :arrow_up: | 升级依赖 |
⬇️ (下降箭头) | :arrow_down: | 降级依赖 |
⚡️ (闪电) 🐎 (赛马) | :zap: :racehorse: | 提升性能 |
📈 (上升趋势图) | :chart_with_upwards_trend: | 添加分析或跟踪代码 |
🚀 (火箭) | :rocket: | 部署功能 |
✅ (白色复选框) | :white_check_mark: | 增加测试 |
📝 (备忘录) | :memo: | 撰写文档 |
🔨 (锤子) | :hammer: | 重大重构 |
🎨 (调色板) | :art: | 改进代码结构/代码格式 |
🔥 (火焰) | :fire: | 移除代码或文件 |
✏️ (铅笔) | :pencil2: | 修复 typo |
🚧 (施工) | :construction: | 工作进行中 |
🗑 (垃圾桶) | :wastebasket: | 废弃或删除 |
♿️ (轮椅) | :wheelchair: | 可访问性 |
👷 (工人) | :construction_worker: | 添加 CI 构建系统 |
💚 (绿心) | :green_heart: | 修复 CI 构建问题 |
🔒 (锁) | :lock: | 修复安全问题 |
🐳 (鲸鱼) | :whale: | Docker 相关工作 |
🍎 (苹果) | :apple: | 修复 macOS 下的问题 |
🐧 (企鹅) | :penguin: | 修复 Linux 下的问题 |
🏁 (旗帜) | :checkered_flag: | 修复 Windows 下的问题 |
这篇关于Git_Tips的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!