Git

GITgit个人笔记 GIT个人手册 版本 日期 修订内容 作者 V01 2019-06-25 初稿 备注: 使用中不断迭代完善,其他人使用中有其他总结的,可以补充。 目录 第一章说明 一.1.1GIT 中文手册 一.1.2git仓库说明(工作区、暂存区、本地仓、远程仓)1 一.1.3git仓库说明(工作区、暂存区、本地仓、远程仓)2... 阅读详情

Git使用指南(三)

1、分支管理:

1.场景:
假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险
2.创建与合并分支:
创建分支:
git checkout -b <name> // 创建并切换分支
相当于:
git branch <name>
git checkout <name>
git branch 查看所有分支
合并分支:
git merge <name> // 合并指定分支到当前分支
删除分支:
git branch -d <name>
3.解决冲突:
当git无法自动合并分支时,就必须首先解决冲突,冲突解决之后再提交,合并完成
git log --graph --pretty=oneline --abbrev-commit 查看分支合并图
4.分支管理策略:
使用普通模式进行合并,在合并时加上--no--ff参数即可,合并后的历史有分支,
而使用fast forward就看不出曾经做过合并
git merge --no-ff -m "merge with no-ff" dev
5.bug分支:
每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除
当需要修复bug,保存当前尚未完成的任务: git stash
修复bug完成后重新打开保存的工作区:
查看工作区: git stash list 
恢复工作区:
git stash apply 恢复后stash的内容并不删除,使用git stash drop进行删除
git stash apply 恢复的同时,将stash的内容也删除了
可以多次stash,恢复的时候先 git stash list,再恢复指定的stash:
git stash apply stash@{0}
6.Feature分支
场景:添加新功能后,已commit,但是尚未合并,需要销毁分支
git branch -d <分支名称> 此时删除,将会丢失修改
进行强制删除:git branch -D <分支名称>
注:
开发一个新feature,最好新建一个分支;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除
7.多人协作:
查看远程库信息:git remote -v
推送分支:(把该分支上的所有本地提交推送到远程库)
git push origin master 或者 git push origin dev
是否推送:
master是主分支,需要时刻与远程同步
dev是开发分支,需要与远程同步
bug分支只用于本地修复bug,不需要推送
feature不一定推送
多人协作模式:
首先,可以试图用git push origin branch-name推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,说明本地分支和远程分支的链接关系
没有创建,使用git branch --set-upstream branch-name origin/branch-name


2、标签管理:
1.标签相当于版本库的快照,其实是指向某个commit的指针,且是不可以移动的,创建和删除标签都是瞬间完成的
2.创建标签:
首先切换到需要打标签的分支上:git checkout branch_name
打标签: git tag <标签名>
默认标签是打在最新提交的commit上的(HEAD),如果需要对历史提交打标签:
git tag <标签名> commit_id
标签不是按时间顺序列出,而是按字母排序的
查看标签信息:
git show <标签名>
创建带有说明的标签:
git tag -a <标签名> -m "说明文字" -s 私钥签名一个标签
查看所有标签:
git tag
3.操作标签:
删除标签: git tag -d <标签名>
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除
推送标签到远程:
git push origin <标签名>
一次性推送全部尚未推送到远程的本地标签:
git push origin --tags
删除远程标签:
先从本地删除:
git tag -d <标签名>
再从远程删除:
git push origin :refs/tags/<标签名>


3、使用Github:
clone 代码
pull request


4.自定义Git:
1.让Git显示颜色:
git config --global color.ui true
2.忽略特殊文件:
在Git工作区的根目录下创建一个特殊的.gitignore文件
忽略文件的原则是:
忽略操作系统自动生成的文件,比如缩略图等;
忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
添加被.gitignore文件忽视的文件:git add -f <文件名>
查看.gitignore文件是否有问题:git check-ignore -v <文件名>
3.配置别名:
git config --global alias.st status // 使用st 代表status
配置git时,加上--global,针对当前用户起作用,否则只对当前仓库起作用
每个仓库的配置文件都存放在.git/config
而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中
配置别名也可以直接修改这个文件,如果改错了,可以删掉文件重新通过命令配置
4.搭建Git服务器:
1)在Linux机器上安装git,使用sudo账号:
sudo apt-get install git
2)创建一个git用户,用来运行git服务:
sudo adduser git
3)创建证书登录:
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个
4)初始化Git仓库:
sudo git init --bare sample.git
服务器上的Git仓库通常都以.git结尾。然后,把owner改为git
sudo chown -R git:git sample.git
5)禁用shell登录:
编辑文件:/etc/passwd,将git:x:1001:1001:,,,:/home/git:/bin/bash修改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
6)克隆远程仓库:
git clone ...
管理公钥:
Gitosis工具
管理权限:
编写一系列的脚本控制权限
Gitolite工具
Git官网:http://git-scm.com







GIT科普系列5:index in git 背景:git的使用其实没有想象中的那么复杂,平日里真正使用的指令都是极少数、最简单格式的。之所以使用过程中感觉操作复杂、冲突不断,究其根源是对git的设计理念缺乏了解,没有搞清楚git实现版本控制的巧妙之处。之前GIT科普系列试图从底层机制来入手讲解GIT的使用,抱着“授人以鱼不如授人以渔”的心态,但是对于希望快速学习和掌握GIT使用方法的读者来说可能收效甚微。 阅读详情

相关推荐

GIT泄露

注意:GitHack是在python2的环境下运行的,dirsearch是在python3环境下运行的,在使用命令使用工具时,最好是写明是python2还是python3,特别是kali中,集成了python2和python3,如果不知名python2还是python3,可能会报错。一般情况在没有提示是git时,通过扫描后台来确定是否存在git泄露,或者可以尝试访问git网页,在确定存在git泄露之后,就可以通过githack来下载git文件,再配合git命令来查看git文件中的内容。

weixin_74020633的博客 1316

关于Git这一篇就够了

目录 前言 发展过程 集中式与分布式的区别 Debian/Linux安装Git 配置git环境:git config --global 创建本地空仓库:git init 新建文件添加到本地仓库:git add、git commit -m 改写提交:git commit --amend 查看历史提交日志:git log 回滚代码仓库:git reset --hard 查看提交之后文件是否做了改动:git status 工作区与缓存区 修改缓存区内容:git add、git co.

17岁boy的博客 52万+

第18届全国大学生智能汽车竞赛四轮车控制策略深度解析:从舵机PID到速度闭环

本文深度解析了第18届全国大学生智能汽车竞赛中四轮车的核心控制策略。从舵机PID方向控制的基础原理与机械校准入手,详细阐述了误差计算、PD控制等关键环节;进而深入探讨了基于编码器的速度闭环控制,包括增量式PI算法与速度决策逻辑。文章结合实战经验,提供了方向环与速度环的协同调参思路与避坑指南,旨在帮助参赛者构建稳定、高效的智能车控制系统。

potato的博客 441

GIT实战篇,教你如何使用GIT可视化工具

经过前三期的学习,不管是GIT模型还是GIT命令,相信大家都已经有了比较全面的了解。当然,尽管GIT命令永远是最强大而全面的,但其并不是只能使用命令来控制,我们还可以使用一些可视化工具。通过界面按钮,能大大提高我们的使用效率。不过,前提是我们已经知道其运行机制,不然就会导致意料之外的情况,这些内容,今天我就带大家一起来学习一些可视化工具的内容

战斧的博客 1万+

GitGit使用Gui图形化界面,Git中SSH协议,Idea集成Git

GitGit使用Gui图形化界面,Git中SSH协议,Idea集成Git

m0_73192864的博客 8907

GITgit知识总结

Git 是一个强大、灵活且高效的版本控制系统,被广泛用于软件开发和其他领域,是开发者不可或缺的工具之一为什么选择git?Git 提供了强大的版本控制功能,可以追踪文件的每一次修改,记录项目的演变历史。这使得开发者可以随时回滚到之前的版本,比较不同版本之间的差异,以及分析项目的发展轨迹。Git 是一种分布式版本控制系统,每个开发者都可以在本地拥有完整的项目副本,不依赖于中央服务器。这样可以在离线状态下进行工作,并允许灵活的分支管理和合并。

Patrick_yuxuan的博客 2579

Git 命令

git help command git --version 查看git版本 git init 初始化本地仓库,会在当前目录下创建一个.git的目录 git config user.name "name" 项目级别的签名设置,放在工作...

EmbeddedCoder 的CSDN博客 7243

在IDEA中使用Git,把IDEA项目加入Git本地库,使用Git管理Java代码

在IDEA中使用GIT,将项目开发代码加入版本控制。方便尝试开发功能失败时或切换版本,还原至稳定可用的状态

QIFU的专栏 8315

Git操作

git remote add origin https://gitee.com/你的用户名/MyUnityGame.gitgit remote add origin https://gitee.com/你的用户名/仓库名.gitgit commit -m "描述你的修改内容,例如:更新UI界面,修复登录bug"git config --global user.email "你的邮箱"git config --global user.name "你的名字"git commit -m "解决冲突"

PA_的博客 910

Aider介绍和安装说明

类别:AI 编程智能体(开源) | 更新时间:2026-07。

wangchunyu114的博客 292

第二篇:安装 Argo CD + 第一次部署应用

上一篇我把 GitOps 讲得头头是道,但讲道理归讲道理,东西得跑起来才算数。这篇就动手:把 Argo CD 装进集群,部署第一个应用,然后亲手搞个"破坏",看它怎么把集群拉回该有的样子。

Zoeww_0319的博客 648

git创建分支并与远程分支关联

本地项目文件夹初始化与远程仓库地址关联

weixin_42214237的博客 150

git使用

1. 添加文件到暂存区。# 2. 创建首次提交。# 3. 推送到远程。

2302_76384361的博客 177

自己动手编写skills:我让AI使用git更规范、合理

wdp-git 的本质,是把"资深工程师提交代码时的所有下意识动作"——分类、核实、防呆、评审、安全——翻译成 AI 能严格执行的规范流程。git 不会替你做决定,但一份好的过程规范,能让每一次提交都不再靠运气。让历史 DAG 可分析、让变更可追溯、让错误可撤销。关注回复:需要skill,私信免费发送skill技能包。

GIS老生,深入架构与AI,持续创作与分享。 990

GitOps·进阶篇】与 Terraform 集成:基础设施的 GitOps 管理

前面我们讲的 GitOps 都是在管 Kubernetes 集群内的资源。但一个完整的应用系统还包括 VPC、数据库、负载均衡器等云资源。这些基础设施能否也用 GitOps 管理?答案是 Terraform + GitOps,也叫 "GitOps for Infrastructure"。

分享技术应用、实践场景等,评论区开放技术难题讨论,共同成长进步。 175

进阶实战-CloudStudio云IDE远程开发/云原生开发实战(一)

CSDN 发布信息(发布时填写,不显示):- 标题:云原生开发实战(一)| 完整远程开发闭环:本地同步 → 云端编码 → 一键部署云函数- 分类:云计算- 标签:CloudStudio、云函数、腾讯云、Serverless、云原生、远程开发、CodeBuddy。

2501_93047244的博客 285

编译brpc和braft,运行couter分布式计数器

<think>我们根据用户给出的内容生成≤150字的摘要。内容是关于编译brpc/braft以及示例代码。要求摘要简洁。需覆盖核心:编译protobuf、brpc、braft,以及基于braft的分布式计数器示例。字数限制严格。我们写摘要。</think>摘要:本文介绍bRPC 1.16 + braft编译流程(基于protobuf 3.20),强调protoc与libprotobuf版本一致,提供CMake编译示例。随后给出基于braft的分布式计数器完整代码(proto、serv

robinfoxnan的专栏 181

Git 历史被覆盖后,我用 GitHub API 抢救回了 34 个文件

git fetch拿不到的旧 commit,通过 GitHub API 依然可以完整恢复。只要 GitHub 上还保留着 commit 元数据(通常永久保留),文件内容就能逐个 blob 下载重建。公开仓库:100%(文件级恢复)私有仓库:100%(需要正确权限的 token)从未 push 的提交:0%(无从追溯)重要分支加保护规则,禁止 force-push定期 push 到多个远程(GitHub + 其他托管平台)重要代码改完后立即 commit + push。

qq_36710118的博客 411

ESP-IDF版本兼容报错:INTR_CPU_ID_AUTO 未定义问题终极解决

核心纠正是 IDF5.1.2 旧宏,并非5.5新增;IDF5.3.5 迭代为高版本IDF废弃旧宏,属于版本API迭代兼容问题,非代码逻辑BUG适配原则:5.1.2旧工程迁移5.3.5,只需替换中断CPU宏名称,无需删除结构体字段最优开发原则:工程IDF版本与编译环境版本一一对应,跨版本迁移需同步适配迭代API、宏定义。

weixin_48867130的博客 191

详细解释SigLIP的原理,为什么有些多模态模型喜欢用他?怎么应用于机器人控制呢

详细解释SigLIP的原理,为什么有些多模态模型喜欢用他?怎么应用于机器人控制呢。

强化学习曾小健 1179

一款实测百分百有效的专业好用的zip压缩包密码破解移除工具.exe

大家都知道我们在压缩一些文件的时候为了安全性会选择使用加密压缩的方式,这样没有密码的话是不能够解压查看文件的。很多时候我们在网页上下载的一些资料压缩包就是被别人加密过的,我们不知道密码就无法解压查看。这样的话我们就可以通过这款软件来查询恢复压缩包的密码了,一款相当优秀的ZIP密码恢复软件,软件能够帮助用户通过简单的方式恢复zip文档的解压密码。软件功能强大,简单实用,您只需选取要恢复密码的zip文件,然后选择与设置恢复方式,即可执行恢复。

上一篇: Sublime Text 使用技巧
下一篇: 全栈工程师笔记/记一个完整的项目流程
imarklei
博客等级 码龄11年 79粉丝 39原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值