git学习笔记

Git分支问题(git remote prune) 问题描述 : 查看所有分支使用命令git branch --all feature-tmp feature-tmp-no-ad feature-tools feature-tools-dev feature-trend feature-trend-paint feature-wangcai feature-wangcai-no-ad remotes/orig... 阅读详情

1.git基本概念理解

git是分布式版本控制系统,适合于多用户合作开发。git系统的管理是以仓库为单位的,对于每一个项目,我们可以建立相应的仓库,当然一个仓库下也可以保存多个项目。仓库有本地仓库和远程仓库。

本地仓库:每个开发者在个人计算机上创建的仓库,开发者进行的所有修改、提交等操作都在本地仓库进行。本地操作可离线进行,本地更新不影响远程仓库。

远程仓库:在服务器端的仓库,只是本地仓库在远程服务器上的一个复制,所有人可见,本地提交可以同步到远程仓库,类似于将本地文件上传到网盘中一般,但是不是上传新文件覆盖旧文件那么简单。

文件状态:在git中,文件有四种状态(git book上说有三种状态,个人理解,所有文件按四种状态分类更合适一点):untracked,modified, staged,committed.

statusdescription
untracked新建文件或者拷贝新文件到git控制目录时,新文件会被git认定为untracked
modified修改文件后,文件状态变为modified。同样使用git add <file>将文件添加到stage区
stagedstage区中的文件,是即将提交的版本修改
committed新版本文件已经提交到仓库

状态切换:对于untracked,modified文件可以使用git add <file>将文件添加到git仓库stage区,使其状态变为staged,git commit命令可以将文件提交到仓库,使其状态变为committed。

commit:每一次commit其实都生成了一个新的版本,不同于某些增量式系统,每有一个新的版本出现,git都会创建一个新版的snapshot,并且生成一个对应的hash码。commit命令会生成一个实体,包含一个hash码,一个指向前一次commit实体的指针,和指向新版本的snapshot的指针。

branch:分支实际上是一个指针,指向某一个commit。创建一个分支意味着新的版本从主线中分离出来,分支版本开发完毕后可以与主线合并。可以将分支理解为不同的开发方向。

2.配置git,本地仓库与远程仓库

2.1 配置git

第一次安装git时需要对其进行配置,使用过程中也可以更改这些配置。使用git config命令可以进行配置。使用该命令配置后的参数存放在三个位置

  • /etc/gitconfig为系统配置(windows下为C:\Documents and Settings\All Users\Application Data\Git\config)。可为git config命令传递--system参数设置。
  • ~/.gitconfig or ~/.config/git/config为用户配置(windows下为C:\Users\$USER\.gitconfig)。可为git config命令传递--global参数设置。
  • .git/config文件,在当前工作空间目录下。为单个项目所配置,仅在该工作空间下有效。可为git config命令传递--local参数设置。
git config --global user.name "name"			#设置用户名
git config --global user.email mail@example.com		#email address
git config --global core.editor emacs			#设置默认编辑器
git config --list					#查看设置
git config user.name					#只查看用户名,查看其他配置同理

2.2 创建仓库

创建本地仓库有两种方式:直接在本地创建和从远程克隆一个仓库到本地。

  • 直接在本地创建
git init 	#从本地创建一个仓库
  • 从远程仓库克隆
git clone url 	#从url指向的地址处克隆一个远程仓库到本地

创建远程仓库可以选择相应的托管网站建立,详见各托管网站。

2.3 本地仓库链接到远程仓库

如果是直接从本地创建仓库,使用dit remote add命令链接到远程仓库

git remote add name url 	#链接到url指向的远程仓库,并命名为name

如果使用git clone命令,则自动链接到远程仓库,并为远程仓库取名origin。
链接到远程仓库之后,可以将远程仓库和本地仓库同步。先使用git pull remote locate从remote同步数据到locate并合并。然后可以使用git push remote locate将本地locate数据同步到远程仓库remote。如果是使用git clone命令创建的本地仓库,则无需先从远程同步数据到本地。

3.基本操作

3.1 查看文件状态

显示目录下文件状态信息

git status
git status -s		# 获取文件简略状态信息
git status –short	# 获取文件简略状态信息

git status只是列出文件状态,一般只显示哪些文件被修改了,哪些文件在stage区还未提交,哪些文件是untracked。若想查看当前文件的具体变化,使用git diff

git diff file		#比较staged文件和当前目录下文件的不同,详细列出更改的地方
git diff –staged	#列出staged 文件和committed文件的变化

3.2 更改文件状态

文件修改后,文件状态会变为modified,将修改的文件或为跟踪的文件添加到stage区,使用下述命令后文件状态变为staged。

git add files

将staged文件提交到仓库

git commit -m "comments"	#带注释信息的提交
git commit -a			#将所有修改过的文件提交到仓库,不要求使用git add将其添加到stage区。但是这可能会将不必要的修改提交。
git commit –amend 		#如果将staged文件提交了但是发现还有文件没有在staged区也需要提交,并且应该与前一次提交合并进行,那么将这些文件添加到staged区,该命令将补充提交到最近的一次提交中。

重命名文件

git mv from to	#与下列三条命令等价
mv from to;
git rm from;
git add to

删除文件

git rm files
git rm -f files		#强制删除,这两条命令都是从硬盘上删除文件
git rm –cached files	#删除staged文件,文件依然在硬盘上,但是变untracked

将staged文件变为unstaged

git reset HEAD files

将修改的文件改回到修改之前

git checkout – files

3.3 git日志

查看git日志

git log				#列出提交日志,默认按时间排序
git log –graph			#以ASCII graph显示结果
git log --pretty=parameter	#使用parameter控制输出格式
git log --patch/-p		#列出每次提交所引入的变化
git log	--stat			#列出每次提交的的详细改变
git log	--since			#限制只输出某一时间之后的提交
git log	--until			#限制只输出某一时间之前的提交
git log	--author		#过滤输出某一作者的提交
git log	--grep			#只输出包含某个字符串的提交

3.4 git remote

将本地仓库链接到远程仓库命令为git remote add,详细使用见第2节。
重命名远程仓库

git remote rename old_name new_name

删除远程仓库

git remote remove <remote>
git remote rm <remote>

监测远程仓库

git remote show <remote>

从远程仓库下载数据到本地仓库,只下载数据不与当前本地仓库合并。

git fetch <remote> 

从远程仓库下载数据自动与本地仓库数据合并。

git pull <remote> <locate>

本地仓库branch所指向数据上传到远程仓库

git push <remote> <branch> 

3.5 git tag

在git中为了标记某些关键开发版本,可以针对相应版本建立标签,git标签分为两种:lightweight tag & annotated tag.
lightweight tag只是一个指针指向某一个提交。
annotated tag却包含tag name, email, date, tagging message等。
列出所有tag

git tag

创建tag

git tag -a <version> -m "comments"	#创建annotated tag
git tag <version>			# 创建lightweight tag

创建后续补偿tag, 当想为某一次过去的提交创建tag时,可以使用如下命令

git tag -a <version> sha-code		#sha-code是某一个提交版本的sha-1 hash码

将tag上传到远程仓库,git默认是不上传tag的

git push <remote> <tagname>
git push <remote> --tags		#一次上传多个tags

删除tag

git tag -d <tagname>

3.6 git别名

如果输入命令时只输入部分,git不会推测命令的意思,有些命令比较长,不想输入完整部分时,可以为某些命令建立一个短的别名代替,代码格式为

git config --global alias.rename command

例如

git config --global alias.ci commit
git ci		#与git commit相同

4.Branch

在git中branch是指向某一个commit的可移动指针。

branch相关操作命令
ordercommandsdescription
1git branch <branch>创建一个新的branch
2git branch查看当前已有branch
3git branch -v查看当前已有branch并列出最后一次commit信息
4git branch --merged查看已经合并的branch
5git branch --no-merged查看未合并的branch
6git branch -d <branch>删除branch
7git checkout <branch>切换branch
8git chackout -b <branch>创建branch并切换到该branch,等同于git branch&git checkout
9git remote show [remote]列出远程branch
10git ls-remote [remote]同上
11git checkout --track origin/serverfix设置当前branch跟踪远程origin下的 branch serverfix
12git checkout serverfix如果本地不存在branch serverfix并且远程刚好存在该branch,则创建一个branch跟踪远程branch serverfix
13git checkout -b sf origin/serverfix更改使得branch sf跟踪远程origin/serverfix branch
14git branch -u origin/serverfix将当前跟踪的branch更改为origin/serverfix
15git push <remote> --delete <branch>删除远程branch
16git branch -vv查看设置的所有跟踪的branches

开始用git管理代码,阅读Pro Git过程中的一些笔记,暂时只写这么多,后续使用学到新的内容再补充。欢迎指正。

BEVFusion(mit)最强环境安装,部署复现 BEVFusion作为一项经典的工作,值得深入探索。然而由于配置环境比较麻烦,耽误了一些时间。经过几次成功配置之后,有了一些总结,在这里记录下来,供大家参考避坑,也方便自己下次查阅。 阅读详情

相关推荐

防反接电路、防倒灌电路、过流保护和ESP相关知识

1.开关电源给负载供电, 如果负载是电池或者其他感性负载(比如像 电机 有线圈 当电源突然断掉时 会产生感应电动势)时, 当220V断掉的时候,可能会出现 电池反向给开关电源 的 输出端 供电,导致开关电源的一些莫名损坏。2.系统在不同的 输出电压 之间 切换时,会存在高压电压倒灌到低压电压源中。例如:系统 有两个电源供电 比如 一个电池 一个 充电器 充电器的电压一般会高于电池 如果没有防倒灌的电路 可能充电器的电压会直接倒灌给电池 造成电池的损坏。

a_black_的博客 1万+

git 远程仓库 remote 使用总结

git的远程仓库是指托管在网络上的项目仓库。对于公司来说,绝大部分公司都会自己搭建自己的git仓库。对于RD来说,自然免不了要经常跟远程仓库 remote打交道。今天我们就来对远程仓库的使用做一个总结。第一步自然是将代码从仓库clone过来:lei.wang ~/gitcode $ git clone git@xxx:lei.wang/user_labels_merge.git Cloning in

bitcarmanlee的博客 9814

HP SPP download

是一个全面的系统软件和固件更新解决方案,以单个ISO映像的形式提供。该解决方案使用智能更新管理器(SUM)作为部署工具。

极致,细节 9861

Git系列(二): git remote一些实用操作

git remote操作还是很实现用的,实际开发工作中经常要用到,本次列举了一些实际工作中经常要用到的技巧点,希望能够帮助到大家 使用分析 所有操作 以下是git remote指令支持的多有指令,可以在使用的时候当指导来查询,一般输入"git remote -h"即可得到 usage: git remote [-v | --verbose] or: git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-.

茶不思基 5190

Viobot使用教程总贴

使用教程总贴

weixin_66666206的博客 1409

SDMA 如何实现设备对主机内存的访问

摘要:SDMA(System Direct Memory Access)是PCIe设备直接访问主机内存的核心机制,使外设无需CPU干预即可高效读写系统RAM。其实现原理包括:设备作为主控发起DMA请求,通过PCIe Memory TLP访问主机物理地址;完整通路涉及驱动分配DMA安全内存、设备配置、地址转换(IOMMU)和中断通知等步骤;关键技术涵盖地址类型(HPA/IOVA)、TLP格式、缓存一致性和安全防护机制。SDMA广泛应用于GPU、网卡、NVMe等高性能场景,是现代异构计算的基础技术,需软硬件协同

MHD0815的博客 240

git命令之git remote的用法

要 参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库.远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写.同他人协作开发某 个项目时,需要管理这些远程仓库,以便推送或拉取数据,分享各自的工作进展.管理远程仓库的工作,包括添加远程库,移除废弃的远程库,管理各式远程库分 支,定义是否跟踪这些分支,等等.本节我们将详细讨论远程库的管理和使用.

wangjia55的专栏 34万+

AutosarMCAL开发——基于TC3x系列时钟系统浅析

本文为博主个人学习总结记录,如有不正,欢迎指正。

qq_45583706的博客 889

git 打标签

打标签 同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签。人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做。本节我们一起来学习如何列出所有可用的标签,如何新建标签,以及各种不同类型标签之间的差别。 列显已有的标签 列出现有标签的命令非常简单,直接运行 git tag 即可: $ git tag v0.1 v1.3 显示的标签按字母顺序排列,所以标签的先后

移动开发 1586

【YOLO26实战全攻略】09——YOLO26多目标跟踪实战宝典:从原理到智慧园区人流统计全流程

多目标跟踪(MOT)是视频分析的核心技术,解决了单帧检测无法关联目标身份的痛点。本文基于YOLO26轻量化检测模型与ByteTrack跟踪算法,从新手视角出发,系统讲解多目标跟踪的核心原理、环境搭建、实操步骤与工程落地。内容涵盖ByteTrack分层关联策略解析、YOLO26集成跟踪的一行代码实现、配置参数调优、区域计数、轨迹数据提取与热力图可视化,最终通过智慧园区人车流量统计虚拟案例,完整呈现从技术原理到实际应用的全流程。本文注重实用价值,所有代码可直接复现,参数配置附带场景化建议,帮助新手快速上手。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 355

基于Simulink的柔性关节人形机器人振动抑制控制仿真

本文完成了基于Simulink的柔性关节人形机器人振动抑制控制仿真,实现了:✅ 建立二质量柔性关节动力学模型✅ 设计加速度反馈主动阻尼控制器✅ 对比陷波滤波与状态反馈效果✅ 验证大幅运动下的快速振动衰减能力✅ 为高动态人形机器人操作(如击掌、搬运)提供平滑执行基础。

xiaoheshang_123的博客 131

Git 学习笔记

个人对 Git 初步学习的理解以及记录

m0_73959697的博客 2110

分享一个我自用的 Python 消息发送模块,支持邮件、钉钉、企业微信

🔥 分享一个我自用的 Python 消息发送模块,支持邮件、钉钉、企业微信

XiaoqiangClub的博客 478

Git学习笔记之——常见指令

Git学习笔记之-------常见指令 工作区\暂存区\仓库 说明 git config --global user.name “名称” 注册用户名 git config --global user.email “邮箱” 注册用户邮箱 git init 在当前文件夹建立Git项目 git mv game.py wordgame.py 本地安全地修改文件名 git ...

iot小胡的博客 377

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

GIT 学习笔记

GIT 学习笔记 --- 思维导图

weijinhua_123的博客 458

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Git学习笔记

试一下啊

qiren5210的博客 144

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Git学习笔记大全

本文是一份全面的Git学习指南,系统介绍了Git的核心概念和操作指令。主要内容包括:版本控制原理(集中式与分布式对比)、Git核心概念(仓库、提交、分支等)、基础操作(创建仓库、提交更改)、进阶操作(分支管理、合并冲突)、高级功能(储藏修改、标签管理)以及远程操作(推送拉取)。文章详细讲解了50+常用Git指令,涵盖配置、提交、分支、撤销、合并等日常开发场景,并附有操作示例和注意事项。适合Git初学者系统学习,也可作为开发者的速查手册,帮助掌握这个强大的分布式版本控制工具。

2402_88633912的博客 1236

git和github学习笔记

git和github学习笔记 仅为学习笔记和重要内容参考,如果想学习git相关知识,请移步廖雪峰的git教程 安装git windows下下载二进制安装 创建git仓库 在git bash工具窗口内,切换到某文件夹下,输入git init在该文件夹下生成.git文件夹 git常用命令 语句 含义 git status 查看状态 git log 查看日志 git reflog...

ShadowKiller' blog 771
上一篇: make出现"undefined reference to 'std::__cxx11..."错误
璞小坤
博客等级 码龄12年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值