Git_Tips

2024-08-26 18:48
文章标签 git tips

本文主要是介绍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

  • The authenticity of host ‘github.com (192.30.255.112)’ can’t be established

少了一个known_hosts文件,本来密钥文件应该是三个,现在是两个,便报了这样的错误,此时选择yes回车之后,便可,同时生成了缺少了的known_hosts文件:Are you sure you want to continue connecting (yes/no)? 
//输入yes,回车
  • error:failed to push some refs to

在github版本库进行在线修改,或直接在github上的某个库中添加readme文件或者其他什么文件,但是没有对本地库进行同步。这时当你再次有commit想要从本地库提交到远程的github库中时就会出现push失败的问题。

# 远程库同步到本地库
git pull --rebase origin master
  • error: GH007: Your push would publish a private email address.

由于设置了邮箱为隐私邮箱,有两种解决方式:
在GITHUB上setting-Emails-Keep my email addredd private去掉勾选。
或者命令行中配置邮箱为username@users.noreply.github.com
git config --global user.email ‘username@users.noreply.github.com’

  • Filename too long

git config --system core.longpaths true

emoji指南

emojiemoji 代码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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1109389

相关文章

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

Git如何修改已提交人的用户名和邮箱

《Git如何修改已提交人的用户名和邮箱》文章介绍了如何修改Git已提交人的用户名和邮箱,包括注意事项和具体步骤,确保操作正确无误... 目录git修改已提交人的用户名和邮箱前言第一步第二步总结git修改已提交人的用户名和邮箱前言需注意以下两点内容:需要在顶层目录下(php就是 .git 文件夹所在的目

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi