git使用笔记

Typora+Git搭建云笔记本 前言 熟悉Git的操作 拥有码云账号 注意:由于Typora的限制,此方式只适用于做文本+图片比较,无法存放其他类型的文件 Typora安装与设置 安装软件 Typora https://www.typora.io/windows/typora-setup-x64.exe Git https://git-scm.com/download/win Git具体操作可以参考教程 http... 阅读详情

1, Linus的 git tree,AKA 'mainline kernel':

        $ git -clone git :// git .kernel.org/pub/scm/linux/kernel/ git /torvalds/linux-2.6. git 

   其他的 git trees可以在[url]http:// git .kernel.org/[/url]找到,点击进去就能看到 GIT URL。


2, 安装 git docs

   要有asciidoc、 wish 命令,安装tcl/tk和asciidoc. wish 命令在tk-x.xx.xx包中。

   编译 git 时,
          
        $ sudo make install-doc


3, 使用 git 

   $ git -config user.name "Jike Song"
   $ git -config user.email [email]albcamus@gmail.com[/email]

           注意,这样会在当前repository目录下的. git /config中写入配置信息。 如果 git -config加了--global
        选项,配置信息就会写入到~/. git config文件中。 因为你可能用不同的身份参与不同的项目,而多个
        项目都用 git 管理,所以建议不用global配置。

$ git -val -l                 //列出 git 变量

   $ git -initdb                 //除非自己创建一个工程,否则没必要使用。 它会创建. git /目录
                                   //这个目录在 git -clone时也会创建。
       
   $ git -clone git :// git .kernel.org/pub/scm/linux/kernel/ git /torvalds/linux-2.6. git 
   $ cd linux-2.6

   此时当前目录下有一个. git 目录. 以下我们都在linux-2.6/下演示:

   $ git -pull                 //更新本地的 git tree。 如果自从你clone了linus tree之后,linus tree
                           //有新的改动,那么把这些更改更新到你的本地tree中
                        //类似于cvs update

   $ git -diff                 //列出自己本地的tree和linus tree的不同
                           这也是产生patch的方式。 注意,使用 git -diff产生的patch都应该在patch(1)时指定-p1

   $ git -apply                 相当于patch(1)命令,不过 git -apply专门用来apply那些用 git -diff生成的补丁
                   --check 不真正打补丁,而只是检查补丁是否能完美的打上
                -v      verbose

   $ git - gui                  // GUI 模式,不过我觉得q git 最好用

   $ git -rev-list <ID>        以时间为顺序,反向列出revision ID。 也就是先列最新的commit ID。 也可以指定列出的数目,例如:
                  
   $ git -rev-list -2 971a71bdc9b42e74a5a8ed0433ac27ae92291024

新加文件:

   $ git -add <filename>          //类似于cvs add <filename>
   $ git -add -a                 //本目录下所有文件和子目录
   $ git -commit                 //提交。注意需要先add再commit。 又, GIT _EDITOR环境变量允许你
                                   //设置编辑器,commit时用它来编辑信息。
                        -s 选项来为commit message的最后一行添加Signed-off-by: Jike Song <[email]albcamus@gmail.com[/email]>

   $ git -commit -e -s -a
                           -s 会增加Signed-off-by行,-e会调用vim进行编辑commit message,-a表示all。

删除文件:

   $ git -rm aa.c
   $ git -commit

恢复删除了的文件:(撤消一次提交)

   $ git -log                  //注意查看上次 git -rm后的 git -commit ID
   $ git -revert adb2f08089edac8bf1912a618a74485ab42f2b86         //指定导致删除操作的commit ID,进行撤消

列出某一个commit ID对应的补丁:

   $ git -log -1 -p 721151d004dcf01a71b12bb6b893f9160284cf6e

   -1的意思是只显示一个commit。如果你想显示5个,就-5。不指定的话, git log会从该commit一直往后显示。

   还有直接的简洁方法:
   $ git -format-patch -1 721151d004dcf01a71b12bb6b893f9160284cf6e
          
        --stdout         //不写入文件,而是打印到标准输出

   或者:
   $ git -show 721151d004dcf01a71b12bb6b893f9160284cf6e                 //thanks for Xu

   或者:
   $ git -diff-tree -p 721151d004dcf01a71b12bb6b893f9160284cf6e


git -bisect的用法
/*{{{*/
   $ git -bisect start
   $ git -bisect bad    //该版本的kernel标记为bad

   或者有针对性的:
           $ git -bisect bad v2.6.22-rc1

   $ git -bisect good v2.6.22-rc2


LABEL:           在你指定了bad和good之后,如果这两个版本之间有1000个revisions, git 就默认剔除了500个,你应该在此时测试该版本:
          
   创建一个临时性的output目录
        $ make ../ git _bisect_output/
   编译:
           $ sudo make O=../ git _bisect_output/ menuconfig && make O=../ git _bisect_output/ V=1 -j4 && make O=../ git _bisect_output/ V=1 modules_install install
        注意,最好在menuconfig时,给local version加上一个string,例如step1、step2等。

   启动新编译的kernel,如果还有BUG:
           $ git -bisect bad
        goto LABEL; //再编译,验证。

   直到某个时候,只剩下一个revision可以怀疑,那时候就可以确认是它引入了补丁。

   当bisect结束,恢复到master版本:
          
        $ git -bisect reset

   [注意]
           git bisect是一个漫长而痛苦的过程。我在Dell Optiplex745(2G内存/Core2双核2G)机器上足足做了一天,才定位到一个commit。

   [replay的用法]
           如果该输入 git -bisect good的时候,不小心输入了 git -bisect bad,则可以这样:
               
                1) git -bisect log | tee ../ git .bisect.log
                2) 修改../ git .bisect.log,删掉最后两行 -- 也就是回退1步
                3) git -bisect replay ../ git .bisect.log

   [visualize的用法]
           git -bisect的时间很长,因为可能需要编译N次内核。 在此期间,可以用:
               
                $ git -bisect visualize
        来在 git k中查看目前还在的那些Revs。
        FYI: 如果你象我一样更喜欢q git ,可以修改`which git -bisect`脚本,将' git k'字样替换成'q git '。
   /*}}}*/
                  
          
git -citool GUI 界面的 git -commit。 不但可以提交,而且可以编辑上次commit的信息。


git -diff的用法

   列出自己tree和master的不同:
   $ git -diff

   列出自己的tree和某一个version的不同:
   $ git -diff v2.6.22

   列出某一个文件,和以前某个version的该文件的不同:
   $ git diff v2.6.20 init/main.c
   注意结果中+表示自己的tree,-表示2.6.20的。

   列出两个tag中某一文件的不同:
   $ git -diff v2.6.23 v2.6.24-rc1 init/main.c



查看某一文件都被哪些补丁改动过:

   $ git -whatchanged -p security/Kconfig      //thanks to Herbert Xu


从本地 git 仓库中提取某个版本的kernel:

   $ git -archive -v v2.6.18 | (cd ../linux-2.6.18/ && tar xf -)
   -v表示--verbose,注意'v2.6.18'必须是 git -tag -l列出来的tags中的一个。

或者打成tarball:

   $ git -archive -v --format=tar v2.6.24 |bzip2 > ../linux-2.6.24.tar.bz2


把当前本地的 git 仓库export到另一个目录(为了测试最新的Linus Tree而又不弄乱 git 仓库)

   $ git -status         //FIXME: 我不确定该用 git -status还是 git -branch
                                                   //或者别的什么命令
   $ On branch master
   nothing to commit (working directory clean)
   $ git -archive -v master | (cd ../linux-2.6-Jan14/ && tar xf -)

你的本地存储乱了,恢复到mailine:

   $ git -reset --hard                 //WARNING: 这会使你的本地改动全部丢失,慎用!


(FIXME: 该方法根本不对!commit log还是乱的!
                                  或许应该用 git -reset --hard)
       
        $ git -diff |tee ../local_against_mainline.diff
        $ git -apply -R < ../local_against_mainline.diff
   或者:
        $ git -diff | git -apply -R
   即可。

git 分析邮件:
       
    $ git -mailinfo msg patch <   <your-email-file.eml> 

    分析邮件,把commit log写到msg文件,补丁写到patch文件。 其他信息打印到标准输出。

从mail文件中打补丁:
       
        $ git -am < <your-email-file.eml>

git -send-email:

    例如
    $ git -send-email --compose --to [email]jeff@garzik.org[/email] --cc [email]davem@davemloft.net[/email] /
      --cc [email]akpm@linux-foundation.org[/email] --cc [email]netdev@vger.kernel.org[/email] /
      -cc [email]linux-kernel@vger.kernel.org[/email] --smtp-server <your-smtp-server> /
      <your-patch-name.patch>

      注意,我的smtp server不需要验证,如果你需要验证,用
      
              --smtp-user=<your account> --smtp-pass=<your passwd>

       来指定。


使用 git -tools来处理mbox里的patch:
   
        $ git clone git :// git .kernel.org/pub/scm/linux/kernel/ git /torvalds/ git -tools. git 

   然后编译、安装。
   它提供了applypatch, cvs2 git , dotest, mailinfo, mailsplit, stripspace这些工具。


email注意事项:
       
1) 可以用xclip程序来复制补丁

            $ git -format-patch -1 --stdout <SHA-id> | xclip
    
     然后鼠标中键粘贴。

2) 小心确认你的编辑器
    
     如使用thunderbird的插件:External Editor指定Vim编辑器等,确认不wrap word。
     我不太敢确保是否~/.vimrc中设置了:
            
          set textwidth=0 
          set wrapmargin=0

     就能不自动插入<EOL>。 不过用:r命令读入补丁文件肯定没问题。

【Obsidian】【Git】使用gitee同步/保存obsidian笔记 Obisidian是一款markdown软件,使用它可以方便地记笔记、记录科研日常。然而如果在多个设备上使用obsidian,会牵扯到笔记/vault/仓库同步问题。下面来介绍如何用git管理obsidian。 阅读详情

相关推荐

GIT-NOTEBOOK——基于GIT的轻量级笔记软件

git-notebook 一款基于 git 的笔记软件,利用 git 仓库建立属于自己的同步笔记本。 笔记功能 使用 git 作为在线笔记存放的仓库,实现不同设备之间的笔记同步; 使用开发人员常用的 markdown 编辑器进行笔记编辑; 实现图片截图的直接复制黏贴(类似 QQ 截图直接黏贴到笔记) 开源地址: gitee源码: https://gitee.com/ericfang/git-notebook 安装包下载:https://gitee.com/ericfang/git-notebook/

写好每一行代码 1552

git 使用 tree命令

前言 很久之前看到这种树状结构,我一直以为是自己一点点敲出来的。后来在 linux 上才发现,这是一个 tree 的命令行工具生成的。今天发现原来 window 平台的 git 也可以安装 tree。记录一下过程和普及下 tree 命令 ├── README.md ├── babel.config.js ├── package.json ├── public │ ├── favicon.ico ...

Jioho的博客 8938

廖雪峰Git教程笔记

文章目录1 什么是Git1.1 Git的诞生1.2 集中式vs分布式1.3 安装Git1.3.1 在Windows上安装Git1.3.2 在Linux上安装Git1.4 创建第一个项目`learngit`1.4.1 创建版本库1.4.2 初始化仓库1.4.3 添加文件到版本库1.4.4 Git使用小结2 版本控制2.1 版本更新2.1.1 `git status`查看仓库状态2.1.2 `git ...

凯哥大数据——刘凯的博客 6476

Git学习之git原理

​ 当我们使用git进行版本管理时,git会将我们的文件和目录结构转化成git方便操作的数据(git对象),然后再对这些git对象进行管理,从而实现版本管理的目的,这些git对象存放在git的对象库中。 我们眼中的文件会被git转化成"块"(blob) 我们眼中的目录会被git转化成"树"(tree) 我们眼中的状态会被git转化成"提交"(commit) blob、tree、commit都是git对象,是三种不同类型的git对象 一个blob就是由一个文件转换而来,blob对象中只会存储文件的数据,而

weixin_43946347的博客 793

使用Typora + Git + gitee搭建个人云笔记

一直以来个人都比较喜欢有道云笔记。 但是吧,以前觉得很好用,用的时间长了就发现了很多弊端,那个Markdown编辑不是很好用。于是就转到了Typora上,Typora话不多说,使用几次就发现好用。所以转到了Typora上下面附上教程。 1、下载Typora 2、接着设置下个人风格(主题) 点击后选择个人偏好设置。 刚开始的时候,看了好多网上的教程,使用的是PicGo上传到gitee,会自动将图片上传到gitee,可能我不会用,还是咋滴,图片上传后就在本地看不到了,感觉比较烦,而且还需要使用Git将.m

Q_Q104926的博客 3267

2019行人再识别 年度回顾 VALSE

行人重识别 行人再识别 行人检索 郑良 郑哲东 钟准 孙奕帆 杨易 悉尼科技大学 龚绍刚 郑伟诗 李玺 浙江大学 中山大学

Git-tree生成操作

1.window上自带tree插件 Mac上需要自己安装 mac安装命令: brew install tree 2.安装后,可以执行命令生成树 tree -I node_modules > tree.text tree -L level 比如tree -L 2 ---只生成2级目录;tree -L 4 ---只生成4级目录 PS: 遇到的坑: 上传到Git项目后...

wj_1010的博客 1132

行人属性识别算法合集

行人属性识别算法合集包括DeepMar,attention-heat-map-refining,RstarCNN,Weakly-supervised-Network

Git,对象 ~ tree

git,tree对象

Java博客 986

AD9361数字调制入门:从IQ调制原理到动手实现第一个ASK信号(Vivado工程详解)

本文详细介绍了如何使用AD9361射频收发器实现ASK数字调制,从IQ调制原理到Vivado工程实现。通过Verilog代码示例和FPGA架构设计,帮助开发者理解纯逻辑实现数字调制解调的关键技术,特别适合软件无线电(SDR)初学者入门实践。

weixin_29158047的博客 374

Win11下Python脚本不执行?5分钟搞定PATH环境变量配置(VSCode终端实测)

本文针对Win11系统下VSCode终端中Python脚本执行无响应的问题,提供了详细的诊断与解决方案。核心在于正确配置PATH环境变量,通过图形化界面调整Python路径优先级,并分享了VSCode终端环境变量的刷新技巧,帮助开发者在5分钟内快速解决环境配置难题。

weixin_28358083的博客 384

[特殊字符] Git 文件树探秘:像查看快递仓库一样理解代码结构

摘要:本文介绍了3种在Git中查看文件结构的方法:1) git ls-files查看当前仓库文件清单;2) git ls-tree查看特定版本的文件结构;3) git show查看具体文件的历史内容。文章通过仓库比喻形象解释Git工作原理,并提供了实用命令参数和使用场景,帮助开发者快速定位Git中的文件信息。最后还给出了图形化工具建议,适合不同需求的开发者使用。

大四在找工作,如果公司有需要的可以联系我13086825462@163.com 836

使用cartographer纯定位替换amcl定位

经过实际使用,发现cartographer定位对于重定位的表现比amcl好。如果机器人的起始位置离原点较远,amcl很难自行重定位到正确的位置,只能手动修改初始位置。然而cartographer定位的表现则很好,在行驶一段距离或原地旋转一段时间后能够正确重定位。

XJ_75的博客 8313

GitNote基于git的个人云笔记

优点 可以存储到git服务(如github,giteee)中的能看到历史版本的git记事本工具。 git 是一个很棒的工具,GitNote 支持 git 的全部特性,并且不依赖本地 Git 环境. 你可以使用任何支持 Git 的仓库. https://github.com/ 免费版支持无限私有仓库 https://BitBucket.com/ 免费版支持私有仓库 https://gitlab.c...

架构师与哈苏 1768

UE4游戏逆向实战:从HOOK明文包到自定义发包的完整流程(附加密算法解析)

本文详细解析了UE4游戏网络通信的逆向工程完整流程。从定位线程发包点、HOOK拦截明文封包,到逆向分析加密解密算法,最终实现自定义组包与加密发送。文章结合实战案例,为游戏安全研究和技术人员提供了一套清晰、可操作的方法论。

weixin_29009081的博客 1236

从零到一:用AXI DataMover在Zynq MPSoC上实现高效DMA传输(附Vitis HLS驱动示例)

本文详细介绍了如何在Xilinx Zynq UltraScale+ MPSoC平台上使用AXI DataMover实现高效的DMA数据传输。通过解析AXI DataMover架构、Vivado工程配置、Vitis HLS驱动开发及性能优化技巧,帮助开发者快速构建高性能数据传输通道,并提供了可直接复用的代码示例。

weixin_42520796的博客 426

【YY笔记】Git使用(狂神git教程笔记)

前言 教程链接:【狂神说Java】Git最新教程通俗易懂;感谢狂神免费分享教程 为了方便OneNote直接粘贴过来的笔记 如有疏漏,欢迎友好交流 正文

weixin_43968560的博客 263

【Google Play 上架】内部 / 封闭 / 开放 测试全解 — “只跑一个就能上架”?不行!

Google Play新规要求个人开发者账号在2023年11月13日后必须通过封闭测试(Closed testing)才能上架应用。封闭测试需要至少12名测试者连续14天保持参与状态,而内部测试和开放测试不能替代这一要求。三类测试轨道各有特点:内部测试用于快速内部验证,封闭测试是上架必经环节,开放测试面向更广泛用户但非必需。上架流程建议先内部测试修复问题,再启动封闭测试满足14天要求,最后申请生产发布。组织账号和早期个人账号可能不受此限制。开发者应提前规划测试人群,确保持续测试周期,并关注Play Cons

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 2799

使用 Git 同步笔记教程

​Git 同步是温知文档首个支持同步笔记的方式,如果想要知道是如何实现的,请移步当笔记软件整合git同步,会是什么效果?本文主要介绍Git同步文档相关步骤。

u011317090的专栏 802

如何通过单步调试的方法,找到 SAP Gateway 到底把 Fiori 应用发送的 OData 请求,投递到哪一台 ABAP 后台服务器了?

这是一个 Count 请求,得到服务器响应的数据是 204,这个 204 会以数字的形式,显示在 Fiori Launchpad tile 上。那如果当前 Gateway 系统可以连接到多台 ABAP 后台服务器,比如下图所示,可以连接 SAP S/4HANA,ERP 或者 SAP CRM,我怎么知道 SAP UI5 应用上显示的数据,到底来自哪一台 ABAP 后台服务器呢?,就是上图 ABAP 调试器里断点停留的位置,即 SAP Frontend 服务器,通过 RFC 将 OData 请求投递给。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 642

第110章 PCL PointCloudFusing 点云融合重建详细讲解

点云融合是指将多个不同视角、不同位置、不同传感器获取的点云数据进行合并,得到一个更加完整、准确的三维模型。多视角扫描:从多个相机或传感器获取点云数据,需要将这些数据融合成一个统一的三维模型。传感器融合:例如将激光雷达(LiDAR)点云与相机的图像数据融合,以便获得更高质量的三维重建。动态场景重建:动态环境中的物体,点云数据不断更新,如何平滑地融合这些点云是一个重要课题。点云融合的目标是将不同来源的点云数据准确地合并,消除冗余,减少噪声,并提高整体的点云密度和精度。

yumeiguo的博客 501

【Git 学习笔记_11】第五章 在 Git 仓库存入附加信息(上)

本篇为《Git Version Control Cookbook》第二版第五章学习笔记的上半部分,也是全书最精彩的章节之一,主要介绍了一种平时鲜有听闻却非常实用的一个 Git 技巧:添加 Git 笔记(notes)。并结合书中给出的示例代码库,在本地逐一进行了验证。感兴趣的朋友可以先收藏,后续亲自上手尝试一下,相信一定会很有收获的。

PeacefulWinter的博客 1356

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Git 学习笔记

这篇记录记录了我在git学习中常常用到的指令,方便在未来进行查阅。此篇文章也会根据笔者的学习进度持续更新。

2302_79769914的博客 1505

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

使用git 提交笔记

使用git 提交笔记首先打开git.lishiming.net注册好一个自己的账号之后创建新的项目 new projects填上项目名称再打开一个这个git网页点击setting 再找到SSH-keys再去终端上 执行命令[root@aminglinux-01~]#ssh-keygenGeneratingpublic/privatersakeypair. En...

weixin_34247299的博客 157

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

如何利用git实现Typroa云笔记

git仓库应用——笔记云存储

weixin_52342654的博客 808
上一篇: 制作嵌入式linux文件系统(ramdisk,cramfs,squashfs)
下一篇: tslib的移植
vrix
博客等级 码龄24年 673粉丝 167原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值