关于git你需要知道的

学习git命令之clone git clone将存储库克隆到新目录 1.git clone -v, --verbose【远程仓库地址】详细地运行。不影响向标准错误流报告进度状态。 2.git clone -q ,--quiet【远程仓库地址】安静地操作。进展不会报告给标准错误流。 3.git clone --progress【远程仓库地址】除非指定了--quiet,否则默认情况下,将进度状态报告到标准错误流时会在标准错误流上报告。 即使标准错误流未定向到终端,该标志也会强制显示进度状态。 4.git... 阅读详情

版本控制相信大家都不陌生,从CVS,到SVN,再到现在越来越受到重视的git。关于它们三者特别是后两者的对比,我觉得有必要说一下。

现在很多人,很多项目从svn转到了git,相信还是有一部分人是被动转到git的,比如说项目的改变,其中又有一部分人可能对git的好处并不是十分了解,以及git也不太了解。我们在使用一个东西的时候,常常会进入到我会用就行了,当我会用了,我就很容易就懂,但是实际情况并非如此。我们要会用,也应该知道究竟为什么我们要这么用。比如说学车的时候,我们虽然没必要知道汽车内部的构造,但是如果能明白为什么换挡的时候要踩离合的时候,对你学车觉得是很有用的。

  • GIT是分布式存储的,而SVN是集中式存储。

    什么意思呢?相信大家都用过SVN,它的工作流程就是:checkout 远端分支到本地 -> 本地修改 -> commit (这一步自动将代码push到远端的代码仓库) -> 加入版本控制这就要求,你必须得有网络,保证本地能够顺利的push代码改动到远端,否则就没法加入版本控制。
    而GIT的工作流程就不同了:ckeckout远端仓库到本地 -> 本地建立分支 -> 在分支上做些修改 -> add 并 commit -> 加入版本控制 -> push本地缓存的commit到远端

    所以最大的区别就是,使用git你完全不需要网络就可以进行版本控制,在本地修改,并提交到本地,并在合适的时候再push到远端。而svn要想加入版本控制就必须保证网络通常。

  • GIT把内容按元数据方式存储,而SVN是按文件
    意思就是GIT会在本地存储项目下的所有文件,因为本地存储的是一个远端的克隆版本,而svn则只需要checkout你需要的那部分代码文件到本地即可。所以通常本地的git目录的大小要远远大于svn的目录。

  • 另外一些特性包括GIT的操作速度要远远快于svn,这对发布来说速度提升明显。

参考:版本控制系统对比:Git与Subversion


下面说正事,说这么多其实最重要的还是得学会使用,毕竟工具的目的就是让我们的工作更加方便有效率。

拿github的工作方式举例吧:
- 1.在github上新建一个项目
- 2.checkout 到本地

    git clone git@github.com:HoTT/book.git -o o
    // -o可以指定oringin的alias。而oringin是远端仓库地址的alias
    //如果需要指定本地文件夹
    git clone git@github.com:HoTT/book.git gitbook -o o
    //如果想查看所有分支
    git branch -a
  • 3.建立分支

建立一个新的分支:

    git branch example //新建example分支
    git checkout example //跳到example分支
    OR:
    git checkout -b example //新建并跳到新分支

    //如果新建了分支之后,想把它的远端设置为init的话应该怎么做?
    git branch -u upstream/init //upstream是远端地址,一般为oringin

clone默认会chekout出master分支,如果你还想要远端的init分支呢?

    git checkout init origin/init //克隆远端的init分支到本地的init分支
    //你也可以在clone版本仓库的时候指定分支;
    git clone <remote_repo> -b <branch>

    //用gitk看下你的工作流
    gitk--all &
</branch></remote_repo>

  • 3.修改并提交
    //本地修改
    git status //列出当前分支的状态
    git difftool //调用diff工具diff代码
    or
    gitk & //
    or
    git gui & //如果你安装了git gui的话

    git add -A . //将所有文件加入缓存

    //提交代码
    git push o init:init //第一次,新建远端init分支,并将本地init分支push过去
    or
    git push o init //效果参见上一条命令
    or
    git push o //push当前分支到upstream。设置了本地分支的upstream之后,可以不用指定远端的分支

    git push  //是 git push o prd_1:prd_1 的简写。因为要push的是本地当前分支prd_1,且其upstream分支名是o/prd_1,同名,所以可以全省略

  • 4.merge
    //merge 当前分支中的别人的修改
    git pull //等同于 git fetch 更新所有的远程分支,然后再 git merge o/prd_1。
    or
    git fetch (and) git merge
    //merge master 分支到当前分支
    git merge o/master
  • 5.conflict 冲突解决

merge的时候很容易就会出现代码冲突,一般情况下git会自行自动resolve,但是如果自动没能解决的话就需要手动解决冲突了。

    //如果配置了mergetool,可以这么使用
    git mergetool
    //修改冲突后,直接提交就行了,就像正常的提交
    git add -A .
    git ci -m 'merge master'
    git push

    //查看下状态
    git status

上面所说的只是一些很基本的用法,对于每个都没有深入去讲,后面会针对常见的问题做一些深入的讲解。

最后再放送一些小技巧

  • 配置alias
    找到你的.gitconfig文件,在里面增加
    st = status
    ci = commit -m
    co = checkout
    br = branch
    unstage = reset HEAD --
    last = log -1 HEAD

或者直接配置全局的alias:

    $ git config --global alias.st status
    $ git config --global alias.ci 'commit -v'

配置了alias之后,将有效的减少你的手指工作量

    $ git st //git status
    $ git ci 'commit one' //git commit -m 'commit one'

终极解决方案:如果你觉得这样还是费事的话,你还可以配置的bash或者zsh的alias:

    alias gst='git status'
    alias gl='git pull'
    alias gp='git push'
    alias gd='git diff | mate'
    alias gau='git add --update'
    alias gc='git commit -v'
    alias gca='git commit -v -a'
    alias gb='git branch'
    alias gba='git branch -a'
    alias gco='git checkout'
    alias gcob='git checkout -b'
    alias gcot='git checkout -t'
    alias gcotb='git checkout --track -b'
    alias glog='git log'
    alias glogp='git log --pretty=format:"%h %s" --graph'
  • 我同时还使用github,这样的话,公司的username和github的不同怎么办?
    //如果不想使用全局的username的配置,只需在项目目录下单独配置即可
   $ git config user.name 'developer' //记得不加--global
AD936x Evaluation Software 详细配置 作者:ShownSun 工作室:时沿科技 文章目录AD936x Evaluation Software详细配置1 系统概述2 AD9361 Wireless Transceiver Evaluation Setup2.1 标签描述2.2 用户参数2.3详细配置3 AD936x RF Wizard3.1 标签描述3.2 用户参数3.3 详细配置4 AD936x Digital Filter Wizard4.1 标签描述4.1.1 时钟配置4.1.2 滤波器配置4.1.3 接收滤波器配置4.1.4 发射滤.. 阅读详情

相关推荐

OpenFOAM-多孔介质模型(porous media)

文章目录一、多孔介质(porous media)二、使用步骤1.达西定律2.Darcy-Forchheimer3.OpenFOAM fvOptions4.paraview动画每帧显示时间(Annotate Time)5.参考内容总结 一、多孔介质(porous media) 在流体力学中,流体流经多孔介质是指流体流经多孔介质时的行为方式,如海绵或木材,或使用沙子或其他多孔材料过滤水。 我们将展示如何设置多孔层,并使用OpenFOAM模拟流体通过该介质。 二、使用步骤 1.达西定律 达西定律最初是由达西通.

zq93538196的博客 9938

Git命令总结

*总结一些自己经常在用或者是容易忘记的Git命令git clone1.git clone url 就是clone远程的url指定的仓库到你本机的工作目录下,会创建一个新的文件夹,就是你clone的项目文件! 2.git clone -o [name] [url] 克隆版本库的时候,所使用的远程主机自动被Git命名为origin。如果想用其他的主机名,需要用git clone命令的-o选项指定

Step by step 209

Cisco Packet Tracer实战:三层交换机链路聚合配置全流程(附常见错误排查)

本文详细解析了在Cisco Packet Tracer环境中配置三层交换机链路聚合的全流程,包括基础网络设置、LACP协议配置、路由协议集成及高级优化技巧。通过实战案例和常见错误排查指南,帮助网络工程师和CCNA备考学员掌握这一提升带宽利用率和实现链路冗余的核心技术。

grafana6viz的博客 227

git 常用命令

git常用命令 ****************************************** 仓库创建 仓库初始化:git init 克隆仓库:gitcloneurl ************************************** 参数配置 系统配置:git config --system user.name yourname 用...

weixin_43931625的博客 349

Ubuntu 22.04 搭建 PX4 飞控系统完全指南:从仿真到硬件试飞

定义消息文件protobufuint64 timestamp # 时间戳float32 temperature # 温度float32 humidity # 湿度生成代码:bashPX4 在 Ubuntu 22.04 的搭建涉及环境配置、编译仿真、硬件连接等多环节,核心是理解 PX4 1.14 的新特性(uXRCE-DDS、动态控制分配)。通过本文指南,开发者可快速构建稳定的 PX4 开发环境,为无人机应用开发奠定基础。

zqmgx13291的博客 3038

【实战解析】RTL8306MB交换芯片驱动开发中的RMII接口调试陷阱

本文深入剖析了RTL8306MB交换芯片驱动开发中RMII接口的典型调试陷阱。通过一个工业网关项目的实战案例,揭示了因硬件原理图设计疏忽导致TX_EN与CRS_DV信号线错接,从而引发网络“哑火”的根本原因。文章详细展示了使用示波器从时钟、数据到控制信号的系统性排查方法,并总结了关键的设计警示与自查清单,为嵌入式网络开发中的软硬件协同调试提供了宝贵经验。

qqq44的博客 1028

git命令整理

git clone git@gitee.com:lianyu507/getword.git   :远程克隆 git checkout -b 分支名 origin/远程分支名    :切换分支 git branch -a   :查看网络分支 git branch  :查看本地分支 有* 代表当前分支 git pull  :提交 git status 

o_nianchenzi_o的博客 268

ABAP FB05 清账实战:POSTING_INTERFACE_CLEARING 核心参数与业务场景解析

本文深入解析ABAP FB05清账操作中的核心函数POSTING_INTERFACE_CLEARING,详细讲解其关键参数与业务场景应用。通过实战案例展示收款清账(EINGZAHL)流程,提供常见错误排查方法,并分享批量清账优化与财务凭证集成的高级技巧,帮助开发者高效处理SAP财务模块清账需求。

weixin_33423874的博客 474

为什么选择OpenDUNE?开源RTS游戏引擎的五大革命性优势

OpenDUNE作为一款开源RTS游戏引擎,以“DUNE, REINVENTED”为核心理念,为即时战略游戏爱好者和开发者带来了全新的体验。它不仅传承了经典RTS游戏的精髓,更通过开源社区的力量实现了技术创新与跨平台兼容,成为游戏开发领域的理想选择。 ## 1. 跨平台兼容性:打破系统壁垒,畅玩无界限 🖥️ OpenDUNE在设计之初就注重跨平台支持,从源代码结构中可以清晰看到其对多种操作系

gitblog_01075的博客 541

农业杂草检测——棉花杂草数据集

然后将本层13×13的特征图谱经过×2上采样扩充到26×26,并与上层中26×26的特征图谱拼接,得到新的26×26的特征图谱,在该特征尺度上进行第二次预测,此时得到的特征图谱是相对输入图像16倍下采样,具有中尺度感受野,适合检测中等尺度对象;通过目标检测,能够及时清除杂草,减少病虫害的滋生和传播,保障棉花的健康生长,并有助于降低生产成本。对于地膜覆盖的棉田,由于膜内耕作层土温高、底墒好,杂草出苗早而集中,一般覆膜后5 - 7天杂草陆续出土,在墒情好的情况下,15天左右即形成出土高峰。

qq_38220914的博客 1245

GMSL转eDP芯片MAX9686X(ADI)

MAX96860/MAX96862/MAX96864解串器可以把单路或双路GMSL转换成eDP V1.4a,支持820MHzPCLK的无压缩的24bpp(每个像素的位数)视频,或660MHz的30bpp视频。芯片的GMSL支持NRZ编码的6Gbps/187Mbps的GMSL2,PAM4编码的12Gbps/187Mbps的GMSL3。同时支持单线(COAX模式)双向全双工传输控制数据和video数据。支持DSC压缩的芯片,最大支持像素时钟1080MHz@24bpp或者864MHz@30bpp,传输方式包括同轴

qflook的博客 2835

你必须知道的Git命令

虽然今天很忙,但是还是不忘在掘金皮,一边写代码,一边皮,一边写笔记,突然停顿了一会发现,我居然骗了个小姐姐,咳咳,中奖了,今天真是开心的一天 这篇笔记是为了学习Git知识而收集总结的,主要是看受一篇帖子《你可能不知道的15条Git命令》的影响,才想记录这篇笔记的,如有雷同,纯属巧合。 Git 是一个分布式版本控制软件, 最初目的是为更好地管理Linux内核开发而设计。 来源:维基百科 - G...

weixin_34315189的博客 152

小黄鸭机器人技术全解-第 07 章 关节自由度与行程参数

—鸭子歪着头转头时,转的平面是斜的,这正是它"灵动"感的来源。仿真里这是自动的(轴定义在父刚体系),复刻时不需要做任何事——

yolo模型训练找我,AI游戏合作找我 63

关于Git你必须知道的

添加修改 储藏 撤销修改 更新与推送 查看信息 分支 标签 合并与重置 Github clone 方式 生成 SSH 公钥

坚果的博客 829

Devexpress16.2.6破解工具

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

git 必须知道的命令

1.初始化仓库 git init 然后设置邮件和用户名 git config --global user.email git config --global user.name "Your Name" 2. 添加到暂存区 git add . .代表当前目录 git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(...

nicew的博客 225

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

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

关于Git你不得不在知道的

Git使用解析(学习使用详细解析 )1 获取 Git 仓库2 Git基础3 Git分支 )) 1 获取 Git 仓库 获取 Git 仓库 通常有两种获取 Git 项目仓库的方式: 1 将尚未进行版本控制的本地目录转换为 Git 仓库; 2.从其它服务器 克隆 一个已存在的 Git 仓库。 两种方式都会在你的本地机器上得到一个工作就绪的 Git 仓库。 1)在已存在目录中初始化仓库 首先需要进入该...

Jay的博客 453

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

那些你应该知道的,但是你一定不知道的 Git 骚操作

Hello 大家好,我是阿粉,作为团队中的主程阿粉经常参与很多核心功能的开发,而且很多时候一个需求没做好中间又插入新的紧急的需求或者 bug 修复,每次遇到这种情况,如果两个地方代码不冲...

Java极客技术 275

你应该知道的 18 个 Git 命令

你应该知道的 18 个 Git 命令 简介 毫无疑问,Git是用于跟踪源代码更改的最流行的版本控制系统。 git的创始人是Linus Torvalds,同时他也是Linux的创始人。 前提要求 为了能够进行后续操作,你需要一个git终端或安装了git的bash shell。 Git配置 在初始化新的git仓库或开始提交之前,应先配置git身份。 为了更改与提交关联的name,你可以使用git config命令: git config --global user.name "Your Name" 同样,这也

Tatooine 273

GIT知道这些就够了

git 知道这些就够了 『Git』知道这些就够了 git status 可以查看当前仓库的状态信息。 如果在仓库创建两个新文件,index.html 和 index.js。 在执行一下 git status。 git add <文件名> 输入git add <文件名> 可以将单个文件加入暂存区。 再次查看状态:发现 index.html 绿了 如果要把全

“跟他人学,和自己比” 755

git是什么_关于git,你知道的还差什么?

大家都知道git是目前最流行的分布式控制系统,它可以把我们的项目代码提交到github上托管。这样我们就可以实现多人同时工作,并且不会有冲突,大大提高了我们的开发效率和协作效率。工作流程一般可以分以下几步。a、克隆 Git 资源作为工作目录。b、在克隆的资源上添加或修改文件。c、如果其他人修改了,你可以更新资源。d、在提交前查看修改。e、提交修改。f、在修改完成后,如果发现错误,可以撤回提交并再次...

weixin_39732866的博客 65

你需要知道的git

第一部分:基础管理 1 创建版本库 $ git init 2 通过ls -a 查看,就可以看见 .git/文件夹 证明创建成功 3 可以通过git status 查看当前的状态  git status -s 显示简单信息 4 添加文件 $ git add 123.txt[文件名] 添加文件到版本库,可以指定文件,也可以使用.添加所有文件 例如:$ git add .

cxymds的博客 349

git应该知道的那些事儿

一、基本操作(如何上传代码) 1、初始化本地项目 git init 2、将需要上传的文件或文件夹添加到暂存区 git add 文件/文件夹名称 3、提交git到本地暂存区 git commit -m '描述信息' 4、将文件提交到远程仓库的相关分支 git push 二、慎用(不要用)git clean git clean用于批量删除branch中新加的文件,最好不要用。。。 当然如果不小心git clean -fdx将整个项目删除了,也不要慌,是可以恢复的 第一步、执行git reflog查看commit

weixin_39399124的博客 223

Git你必须知道的知识

git可以有一个仓库,版本库,可以保存这些文件。且很好找到,且文件容易丢失,git能解决这些缺点。

qq_61990666的博客 1050

这些git使用你知道吗?

第一部分:基础管理 1 创建版本库 $ git init 2 通过ls -a 查看,就可以看见 .git/文件夹 证明创建成功 3 可以通过git status 查看当前的状态 git status -s 显示简单信息 4 添加文件$ git add 123.txt[文件名]添...

chinawangshuo_1990的博客 114

如何知道是否安装git_你知道如何用 Git 来统计代码吗?

点击上方“后端技术精选”,选择“置顶公众号”技术文章第一时间送达!作者:jarttohttp://jartto.wang/2019/07/09/git-stats/当我们维护一个开源项目的时候,你肯定想知道哪些人比较活跃,哪些人贡献比较多。这时候就需要一个简单易用的工具,下面我来介绍几款。一、场景目前大部分的项目可能都会用到 Git 来做代码管理,那么我们在不断的修改项目的过程中,可能会...

weixin_39942037的博客 311
上一篇: 在Linux上使用Chrome运行Android应用
下一篇: (30 hackdays day 20) Clarify - 处于pending状态的QS服务
formyth
博客等级 码龄17年 9粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值