Git使用教程

【git】小甲鱼Git教程《极客Python之Git实用教程》笔记一 〇、前情提要 一直想学git,使用GitHub很久了,但一直咕咕咕。择日不如撞日,开搞。 然后突然想起来我冲过小甲鱼的会员,那就跟着小甲鱼学一下吧,后续如果在b站看到了补充的还会再继续写笔记。 参考: 1.【Git教程】《极客Python之Git实用教程》(小甲鱼) https://www.bilibili.com/video/BV1bs411N7ny?from=search&seid=11044103083431153314 2. 小甲鱼官网《极客Python之Git实用教程》 https://f 阅读详情

1. Git简介

Git的功能不多做介绍。

2. 基本操作

2.1 分支管理

2.1.1 创建新分支

git branch <new_branch>

2.1.2 查看远程分支

git branch -a 

或者

git branch -r

加上-a参数可以查看本地和远程分支,远程分支会用红色标识出来;加上-r参数只显示远程分支。

2.1.3 创建并签入分支

从当前master分支上创建v1.0分支,命令如下:

git checkout -b v1.0 master

将本地v1.0分支push到远程

git push origin v1.0:v1.0

2.1.4 删除远程分支

在Git v1.7.0版本之后,可以使用这种语法删除远程分支:

git push origin --delete <branchName>

2.1.5 删除不存在对应远程分支的本地分支

假设这样一种情况:

  1. 我创建了本地分支b1并push到远程分支origin/b1;
  2. 其他人在本地使用fetch或pull创建了本地的b1分支;
  3. 我删除了origin/b1远程分支;
  4. 其他人再次执行fetch或者pull并不会删除他们的本地b1分支,运行git branch -a也不能看出这个branch被删除了,如何处理?

使用下面的命令查看b1的状态:

git remote show origin

结果如下所示:

* remote origin
Fetch URL: git@github.com:xxx/xxx.git
Push URL: git@github.com:xxx/xxx.git
HEAD branch: master
Remote branches:
master tracked
refs/remotes/origin/b1 stale (use ‘git remote prune’ to remove)
Local branch configured for ‘git pull’:
master merges with remote master
Local ref configured for ‘git push’:
master pushes to master (up to date)

这时候能够看到b1是stale的,使用命令:

git remote prune origin

可以将其从本地的版本库中删除。
更简单的方法是使用这个命令,它在fetch之后删除掉没有与远程分支对应的本地分支:

git fetch -p

2.1.6 重命名远程分支

在Git中重命名远程分支,其实就是先删除远程分支,然后重命名本地分支,再重新提交一个远程分支。
例如下面的例子中,我们需要把devel分支重命名为develop分支:

git branch -av

* devel 752bb84 Merge pull request #158 from Gwill/devel
master 53b27b8 Merge pull request #138 from tdlrobin/master
zrong 2ae98d8 modify CCFileUtils, export getFileData
remotes/origin/HEAD -> origin/master
remotes/origin/add_build_script d4a8c4f Merge branch ‘master’ into add_build_script
remotes/origin/devel 752bb84 Merge pull request #158 from Gwill/devel
remotes/origin/devel_qt51 62208f1 update .gitignore
remotes/origin/master 53b27b8 Merge pull request #138 from tdlrobin/master
remotes/origin/zrong 2ae98d8 modify CCFileUtils, export getFileData

删除远程分支devel:

git push --delete origin devel

重命名本地分支:

git branch -m devel develop

推送本地分支:

git push origin develop

2.1.7 合并分支

将分支v1.0合并到master,操作如下:

git checkout v1.0
git checkout master
git merge v1.0

在当前为master分支的情况下,执行merge命令即可。

2.2 标签管理

2.2.1 列出现有标签

git tag

这个列表是按照字母顺序给出的,其实排名先后跟重要程度没有直接联系。
当然,也可以按照特定表达式搜索某些标签。比如:

git tag -l v.1.2.*

2.2.2 获取远程标签

git fetch origin tag <tagName>

2.2.3 创建标签

在git中有两种最主要的标签:轻量级标签(lightweight)和带注释的标签(annotated)。轻量级标签跟分支一样,不会改变。它就是针对某个特定提交的指针。然后,带注释的标签是git仓库中的对象。它使一组校验和,包含标签名、email、日期、标签信息、GPG签名和验证。一般情况下,建议创建带注释的标签,这样就会保留这些信息,但是如果你只需要临时性标签或者某些原因你不想在标签中附带上面说的这些信息,lightweight标签更合适些。
在git中创建带注释的标签非常简单,运行如下命令即可:

git tag -a release_v1.0_20140930 -m "version v1.0"

可以使用git show命令查看相应标签的版本信息,并连同现实打标签时的提交对象。

git show release_v1.0_20140930

轻量级标签实际上就是存在一个文件中的提交校验和没有附加任何其他信息。创建轻量级标签的方法就是把上面“-a”,“-s”,“-m”和谐选项都去掉。

git tag v1.1

2.2.4 验证标签

使用命令:

git tag -v release_v1.0_20140930

就可以验证一个签名标签了。这个命令会用到GPG来验证签名。前提是:你必须在密钥环中存放着签名者的公钥。

2.2.5 将本地标签推送到远程

git push --tags

2.2.6 删除远程标签

git push origin --delete tag <tagName>

或者

git tag -d <tagName>
git push origin :refs/tags/<tagName>

2.2.7 查看远程标签列表

git ls-remote

2.3 文件管理

现实文件的每一行是在哪个版本最后修改:

git blame filename.c

显示某个文件的每个版本提交信息:提交日期,提交人员,版本号,提交备注(没有修改细节)

git whatchanged charge.lua

2.4 日志

显示某个版本的修改详情

git show 7aee80cd2afe3202143f379ec671917bc86f9771

或者

git log -p 7aee80cd2afe3202143f379ec671917bc86f9771 

显示每个版本都修改了哪些文件:

git log --pretty=oneline  

显示某个版本的某个文件修改情况

git log --pretty=oneline  charge.lua

或者

git show 5aa1be6674ecf6c36a579521708bf6e5efb6795f charge.lua

2.5 配置

用户的git配置文件为~/.gitconfig,常规配置信息如下:

# 设置user
git config --global user.name "robin"
git config --global user.email "robinhuang83@gmail.com"
# 打开配色
git config --global color.ui true
# 设置alias
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
# 列举所有配置
git config -l

MacOSX下我的配置信息如下:

[user]
    name = robin
    email = robinhuang83@gmail.com
[core]
    excludesfile = /Users/robin/.gitignore_global
[difftool "sourcetree"]
    cmd = opendiff \"$LOCAL\" \"$REMOTE\"
    path =
[mergetool "sourcetree"]
    cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
    trustExitCode = true
[alias]
    lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s [%cn] %Cgreen(%cr)%Creset' --abbrev-commit --date=relative

2.6 创建仓库

mkdir myproject
cd myproject
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://git-source/myproject.git
git push -u origin master

2.7 导出干净代码

$git archive --format zip --output "./output.zip" master -0  

2.8 有用的命令

2.8.1 放弃本地修改强制更新

git fetch --all
git reset --hard origin/v1.0
git pull

git fetch只是下载远程的库的内容,不做任何的合并;git reset把HEAD指向刚刚下载的最新的版本。

2.8.2 本地分支强制覆盖master分支

git checkout master
git reset --hard origin/master
git reset --hard develop
git push origin master --force

3.统计

3.1 统计某人的代码提交量,包括增加,删除

git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }' -

3.2 统计代码提交量排行

git shortlog -s|sort -r

3.3 统计代码提交量排行前五

git shortlog -s|sort -r|head -n 5

或者

git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5

3.4 贡献者统计

git log --pretty='%aN' | sort -u | wc -l

3.5 提交数统计

git log --oneline | wc -l
Git安装教程 本文详细介绍了Git在Windows系统的安装与配置过程。从官网下载安装包后,用户可自定义安装路径并选择常用功能如Git Bash右键集成、Git LFS大文件支持等。安装过程中需注意关键配置项:选择VS Code作为默认编辑器、设置初始分支名称(推荐main)、配置PATH环境变量、选择SSH执行程序(推荐内置OpenSSH)以及换行符处理。文章还解释了Scalar插件的用途(针对超大规模仓库)和终端模拟器选择建议(推荐MinTTY)。这些配置选项直接影响Git的使用体验和团队协作效率,根据开发需求选择。 阅读详情

相关推荐

GIT安装教程(入门)

安装好之后,打开然后使用命令创建你的Git项目上面已经附上习题了,大家可以跟着习题一步一步走一遍!

是个非常热爱生活、乐观、奋斗、努力的逗比青年 6万+

git 命令

git 命令

技术共享,共同进步! 404

IDEA 中使用 Git 图文教程详解

IDEA 下配置 Git 【1】注册 Gitee 码云账号 【2】安装 Gitee 码云插件 【3】Version Control 中 Git和Gitee 配置 【4】Git 签名设置 【5】项目推送到 Git 仓库并分享给用户 【6】项目修改后,更新远程仓库 【7】从 Git 中拉取远程项目代码到 IDEA 中 【8】项目历史版本的查看和恢复

不迁怒,不贰过。小知识,大智慧。 5166

Git常用命令总结

原文链接:Git常用命令总结 - 简书 简介   git有四个工作区域,分别是:工作目录(Workspace)、暂存区(Index/Stage)、本地仓库(Repository)、远程仓库(Remote) 配置 git config   git config命令的作用是配置git的相关信息。 配置全局的用户名和邮箱,mac下可通过终端输入命令cat ~/.gitconfig查看配置信息。 设置用户名:git config --global user.name "name" 设置...

wwf1225的博客 450

CPRI原理及应用--基本原理

本文主要介绍CPRI的基本原理,包括CPRI的发展历程、CPRI基本协议、速率、帧结构、时延模型等

u014035968的博客 2万+

储能系统架构和控制

探讨了储能系统中EMS(能源管理系统)、BMS(电池管理系统)和PCS(功率转换系统)之间的协同机制,以及组串式和集中式储能系统的技术架构、优势和局限性。EMS根据电价、电网需求和电池状态制定充放电策略,BMS提供电池数据,PCS执行充放电控制。组串式系统具有独立管理和灵活扩展的优势,但成本较高;集中式系统成本效益高,但存在环流和木桶效应问题。

蓝龙宝藏的博客 3968

GIt在pyCharm的使用教程

GIt在pycharm的使用教程

铁头同学的博客 5万+

FLUKA软件在Ubuntu的安装指南(亲测有效)

FLUKA其强大的蒙特卡洛模拟能力使得用户能够模拟复杂的辐射相互作用过程

chencheng1127的博客 2886

Git安装配置超详细教程

Git安装配置超详细

Laptoy的博客 5万+

【科研】Michaelis–Menten 曲线(米氏曲线)中反应速率的计算

Michaelis–Menten 曲线 米氏曲线 纵坐标 反应速率求值 朗伯比尔定律

weixin_42809675的博客 2万+

高温环境下(100℃以上)相机的几种保障方案

高温环境下相机保障措施摘要:针对120℃以上高温环境,相机需采取多重防护:1.散热设计采用金属机身、散热鳍片或风扇;2.关键部件选用耐高温材料(铝合金、特种玻璃);3.电子元件需军规级芯片并做三防处理;4.建议外接电源或耐高温电池。工业相机(如FLIR A655sc、Basler ace)及特种机型(Ximea xiQ)具备高温适应性,普通相机可加装隔热套件配合冷却系统。选择时需关注传感器信噪比和全局快门性能,并设置温度监控保护机制。注意高温会加速设备老化,需定期检测维护。(149字)

start_up_go的博客 1586

在IDEA中使用git(教程)

友情提醒:先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。有用记得关注。

baomingshu的博客 1万+

Kimi Code国产AI编程助手安装使用详细教程

Kimi Code 开发者智能编程服务简介:Kimi Code 是专为开发者提供的 AI 编程辅助工具,基于旗舰模型 Kimi K3(2.8万亿参数,支持100万token上下文)。提供 CLI、VS Code 插件等形式,支持代码阅读、编辑等功能。用户可通过API Key接入第三方工具。安装简单(Windows/Mac/Linux一键脚本),需在官网生成API密钥并登录使用。注意账户需充值余额方可正常调用服务。

猿小白的博客 2065

真过万收藏的Git教程 —— 新手程序员必看的Git教程

Git 是一个版本控制系统,允许开发人员跟踪其代码随时间的变化。它允许多个人同时处理同一个代码库,并且如果出现问题,可以轻松恢复到以前的代码版本。GitHub 是一个提供 Git 存储库托管服务的网站。开发人员可以在这个平台上存储代码、与他人合作开发开源项目以及跟踪问题和错误。开发人员可以使用 GitHub 创建自己的存储库,即“repos”,就像是代码的文件夹。他们还可以在存储库上创建分支以制作自己的副本,并提交拉取请求以建议对原始存储库进行更改。

lengyudexin的博客 1532

基于深度学习的火焰检测系统:YOLOv8 + UI界面 + 数据集详解

YOLO(You Only Look Once)是一种端到端的目标检测算法,其最大优势在于将目标检测任务转化为一个回归问题,可以在一次前向传播中同时完成目标定位和分类。YOLOv8是YOLO系列中的最新版本,相比之前的版本,YOLOv8在精度和推理速度上都做了显著提升,特别是在小物体检测方面表现更加优秀。实时性:YOLOv8具有较高的推理速度,适用于实时火焰检测。高精度:相较于YOLOv7,YOLOv8在精度和小物体检测上有所改进。简单易用:YOLOv8的API简单直观,易于集成和使用。

YOLO 660

数字滤波器应用介绍

线性滤波器FIR ,会引起恒定延迟,通过补零的方式补偿非线性滤波器IIR,会引起频率相关的延迟,通过零相位延迟filtfilt补偿从信号中去除不需要的频谱时,通过滤波和补偿实现。如果需要去除的频率与采样率相差甚远,比如4kHz 与100Hz, 可通过 低通滤波->补偿->降采样–> 滤波 补偿 -->上采样还原的方法。*降采样前一定要先低通滤波为了防止混叠。

weixin_39107270的博客 274

git的详细使用教程

介绍了git的用法,是对以前文章的整理和更新,以前是用富文本写的,现在习惯用md编辑器,索性出了一个新版,新增编译器操作说明和使用细节

yk的博客 4361

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【Git】git简易快速入门教程

本文是git的简易版入门教程,教你如何快速地上手git 文章目录1、下载2、设置账户3、配置版本库4、把代码提交到本地仓库5、设置远程仓库地址6、提交到远程仓库 1、下载 百度直接搜git,不过官网下载速度极慢,建议百度git镜像下载 根据你的系统选择下载的安装包,下载好后点击鼠标右键会出现如下图所示的两个选项 2、设置账户 git config --global user.name git config --global user.email 第一行在name后加个空格,再输入你的github的

Hello,My Friends~ 720

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

git的使用教程

此时,当我们回到git,重新查询文件状态,会发现文件被修改过了,状态不对,我们只需要再根据以往的习惯,把当前版本重新上传到git版本库中就好了。前滚或者后滚都可以,但是要有哈希值,可是如果我们将窗口关闭再重新打开之后,我们看不到之前版本的哈希值,于是便要通过指令。用于推送仓库,origin用你刚才定义的网址变量名来代替,当然,你要输网址也可以,"master"就是你当前的分支名称。当我们修改完成之后且确认要上传的git库中时, 首先将文本根据上面的指令上传到git暂存区中,然后再输入指令。

Taciturn_C的博客 2493

菜鸟教程之git

Git 教程 | 菜鸟教程 git push 命令 | 菜鸟教程

WuHey的博客 316

Git教程

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

m0_73822132的博客 1653

【git】在mac上用brew安装并配置git教程

〇、前情提要 学git需要安装,留一个自认为最简单的流程。 参考: Homebrew国内如何自动安装(国内地址) https://zhuanlan.zhihu.com/p/111014448 git官方下载 https://git-scm.com/download/mac 小甲鱼-Git实用教程2:安装Git https://fishc.com.cn/thread-71175-1-1.html 一、Homebrew 来自参考1知乎专栏,出现问题也可去原网站找原因。 /bin/zsh -c "$(curl

weixin_43210113的博客 1万+

Git使用教程和GIT命令详细版

Git使用教程和GIT命令详细版,为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助文档的,总之,初学者很难找到一个由浅入深,学完后能立刻上手的Git教程。

stc_ljc的博客 631
上一篇: Linux下防火墙开启相关端口及查看已开启端口
pythoner
博客等级 码龄18年 15粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值