在工作之后,我比较经常地接触git,关于git的用法,网上有很多的教程,而且git的指令是非常多的,强如阮一峰这样的高手也直言无法记住git的很多指令。实际上我也看了不少关于git指令的文章,个人觉得,确实有很多指令是比较鸡肋的,或者根本就用不着,或者纯粹为了操作而操作。下面我总结几个比较常用的git操作,分享出来。

  先上个自己画的图:

  

  git的基本流程就是这样。关于git pull origin xxx的用法,网上有一些声音是说:少用git pull,多用git fetch + git merge origin xxx。这里的origin是主机名,当然这个主机名是可以改动的,但是大家约定俗成的就是不去改它,xxx表示当前所在的分支名。同样在行业里也有一些约定俗成的命名。比如在开发环境的分支,一般来说,不是命名为"develop",就是命名为"test"。

  回到上面那个问题,git fetch就是从远程仓库拉下代码到本地仓库,再用git merge origin xxx更新到工作区。而git pull origin xxx则是直接一步到位,从远程仓库拉下并直接更新当前工作区。这种方法其实是安全的,很多人会担心这样本地自己写的东西会被覆盖,其实根本不会的,比如你改了第1000行代码,另一位小伙伴也改了第1000行代码,但是他效率比较快,比你先推到远程仓库了,这时候你再把他的最新代码拉下来,工作区是会报冲突的,而且会给你标记出来,冲突需要手动解决。

  下面汇总一下:

  git status  //查看当前所处的分支,以及本地更改的代码状态,如果更改没有提交到暂存区,会以红色显示。在暂存区则以绿色显示

  git add .  //提交本地新建的文件 + 修改过的文件,注意这个 . 前面有个空格不要漏了

  git commit -m "balabala"   //提交代码到本地仓库,balabala代表你本次提交的说明,比如更新了某某功能,解决了某某bug

  git pull origin xxx    //从xxx分支拉取最新的代码并更新工作区

  git push origin xxx  //把本地仓库的项目推到远程仓库,强烈建议在推之前先git pull origin xxx拉一遍最新的代码,因为如果你不是基于最新代码进行改动的,是推不上去的。如果存在冲突,就更推不上去了。

  git branch -a   //列出远程仓库的所有分支名,这里的a应该是“all”/的意思

  git checkout xxx   //跳转到xxx分支,这个分支是指远程分支,跳转之后,工作区将会更新为新分支的内容,此时写代码还有提交都是在这个新分支上进行。

谈下git的基本操作的更多相关文章

  1. IDEA环境下GIT操作浅析之二-idea下分支操作相关命令

    上次写到<idea下仓库初始化与文件提交涉及到的基本命令>,今天我们继续写IDEA环境下GIT操作之二--idea下分支操作相关命令以及分支创建与合并. 1.idea 下分支操作相关命令 ...

  2. IDEA环境下GIT操作浅析之一Idea下仓库初始化与文件提交涉及到的基本命令

    目标总括 idea 下通过命令操作文件提交,删除,与更新并推送到github 开源库基本操作idea 下通过命令实现分支的创建与合并操作 idea 下通过图形化方式实现idea 项目版本控制基本操作 ...

  3. Git GUI基本操作

    一.Git GUI基本操作 1.版本库初始化 gitpractise文件夹就变成了Git可以管理的仓库,目录下多了一个.git文件夹,此目录是Git用于管理版本库的,不要擅自改动里面的文件,这样会破坏 ...

  4. 【转】Git GUI基本操作

    一.Git GUI基本操作 1.版本库初始化 gitpractise文件夹就变成了Git可以管理的仓库,目录下多了一个.git文件夹,此目录是Git用于管理版本库的,不要擅自改动里面的文件,这样会破坏 ...

  5. Linux下git安装配置

    一.Linux下git安装配置 2013-07-28 20:32:10|  分类: 默认分类 |  标签:linux  git  server  |举报|字号 订阅     http://abomby ...

  6. Windows下Git的下载、安装、设置用户名和邮箱、创建版本库等

    Git官网:https://git-scm.com/ 一.Git下载 官网首页下载,当前最新版本:2.24.1 本人下载的是Git for Windows版本:Git-2.24.1.2-64-bit. ...

  7. 安全防范:nginx下git引发的隐私泄露问题

    安全防范:nginx下git引发的隐私泄露问题 1   安全事件 最近阿里云服务器后台管理系统中收到一条安全提示消息,系统配置信息泄露: http://my.domain.com/.git/confi ...

  8. Ubuntu下git的安装与使用

    Ubuntu下git的安装与使用 Ubuntu下git的安装与使用与Windows下的大致相同,只不过个人感觉在Ubuntu下使用git更方便. 首先,确认你的系统是否已安装git,可以通过git指令 ...

  9. 聊下git pull --rebase

    有一种场景是经常发生的. 大家都基于develop拉出分支进行并行开发,这里的分支可能是多到数十个.然后彼此在进行自己的逻辑编写,时间可能需要几天或者几周.在这期间你可能需要时不时的需要pull下远程 ...

随机推荐

  1. SAP MM 预留单据的历史修改记录?

    SAP MM 预留单据的历史修改记录? 在笔者眼里,SAP系统是一个高度严谨的软件系统.用户在SAP系统里的相关操作,系统都会做记录.用户对于系统的相关单据的增删改,SAP系统都有保留change h ...

  2. 将展示内容(div、iframe)放在Expand控件中

    Expand是ArcGIS JavaScript API 4.3推出的一个widget(控件),用于承载一个HTML DOM元素,可以把一个自己编写的div或者是一个其他的Esri widget控件放 ...

  3. 全球排名第一的免费开源ERP Odoo 12产品发布会北京站开始报名

    Odoo V12 产品(北京)发布会 暨企业数字化转型论坛 快速报名通道:http://odoochina.mikecrm.com/uG8nNu4 随着新版本Odoo 12的发布,开源智造(OSCG. ...

  4. Flutter 即学即用系列博客——07 RenderFlex overflowed 引发的思考

    背景 在进行 Flutter UI 开发的时候,控制台报出了下面错误: flutter: ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY >╞════════ ...

  5. 解决git Failed to connect to 127.0.0.1 port xxxx: Connection refused

    某天,用git拉取,提交代码的时候出现了git Failed to connect to 127.0.0.1 port xxxx: Connection refused的问题, 开始百度,看了一通.都 ...

  6. Mongo之架构部署(Replica Sets+Sharding)

    一.环境 要构建一个 MongoDB Sharding Cluster,需要三种角色: •Shard Server: mongod 实例,用于存储实际的数据块. •Config Server: mon ...

  7. Java辅助类持续汇总~

    /** * 01 * 描述:List<String>集合去除重复数据 * [时间 2019年3月5日下午3:54:09 作者 陶攀峰] */ public static List<S ...

  8. linux常用命令小结

    其他类 clear 清屏 文件管理 chmod 修改文件权限. 常用列表: chmod +x 使文件变为可执行文件. 常用于sh脚本. touch 创建文件 tar 压缩文件操作. -zxvf, 解压 ...

  9. ==运算符和equals()方法的区别

    Java语言程序中判断两个变量是否相等有两种方式:一是运用==运算符,二是运用equals方法. 1. ==运算符 对于==运算符来说,如果两个变量是基本类型的,并且是数值类型,则只要它们的值相等,就 ...

  10. 磁盘阵列raid类型及含义

    raid0: 多块盘同时进行读写: 优点是读写效率高,缺点是没有数据冗余: 最少需要两块盘. raid1: 将数据盘都做镜像: 优点是有数据冗余:缺点是读写效率低,磁盘利用率低: 最少需要两块盘. r ...