作为一名开发人员,提交代码那是家常便饭,那如何有效地利用Git进行提交代码呢?在这里介绍一些常用、必要的命令,几乎够工作中使用了。

(1)git pull 命令:拉取代码,这条命令没啥说的了,在提交代码之前必须要更新最新的代码库;

(2)git stash命令:在git pull后可能会遇到代码冲突的问题,那如何处理比较好呢?首先,输入git stash命令,将自己修改过的代码暂存起来;然后,输入git pull命令更新一下代码;接着,输入git stash apply或者git stash pop命令,它会自动将远程代码和本地代码合并,在该命令后若还是出现代码冲突的话,那么先用git status命令,查看有哪些文件是冲突的,然后通过git diff命令查看冲突的地方,你可以通过vim命令直接修改,也可以通过文件编辑器进行修改,保存修改后的文件,用git add 命令将该文件添加至缓存区;最后输入git stash apply或者git stash pop命令,这样就可以顺利地解决远程代码和本地代码冲突的问题了;

(3)git commit --amend命令:该命令是在上一次最近的git commit的基础重新提交,不过需要注意的是不能运行git pull命令进行更新代码哦,这个命令很有用,在CI中若是需要对某个文件修改多次的话,那么该命令就派上用场了,在流水线上我们会看到相同的jobID携带了不同的序号,例如:jobID.1 、jobID.2、jobID.3……

(4)git push命令:要将代码提及至远程代码库中就需要改命令,刚开始的时候我们会这样输入命令git push origin HEAD:refs/for/master%r=xxx@xxx,r=aaa@aaa;不同的评审人员邮箱之间用逗号隔开,注意了,我这里是在master分支上提交代码,当然你可以根据要求的代码分支进行提交,比如develope分支,就输入git push origin HEAD:refs/for/master%r=xxx@xxx,r=aaa@aaa;要是每次都是这样输入的话,那是不是很费劲呢,有时候还会输入错误呢;那有么有更好的方式呢?当然是有的,接触别名的方式可以简化上述命令,首先找到Git的配置文件.gitconfg文件,在该文件中添加这样一条别名:apple= push origin HEAD:refs/for/master%r=xxx@xxx,r=aaa@aaa  后续直接输入git apple命令就可以完成代码提交了,这样可以很方便地记住,也避免了重复输入复杂的语句而导致输入错误的情况;

(5)git push的时候可能会遇到提示change-id已丢失,出现这种情况时,首先看看代码目录下的.gti/hook下是否存在commit-msg文件,若不存在的话,就根据错误提示将该文件下载下来,然后输入git commit --amend命令,一定要这么做,不然还是不会生成change-id号;若是不存在commit-msg文件的话,那么输入git status命令,查看本地代码是不是出现merged过代码,若是这样的话,那你只好先git stash,然后git reset HEAD^^^,^的数量至少能够让你的代码会退到merged过这条log之前,接着就是git pull命令更新代码,其次就是git stash apply或者git stash pop命令,最后就是git push命令提交代码了。

(6)每次commit一次,是不是都要立马git push呢?其实不然,你可以分多个changeId,多次commit,最后统一一次git push操作即可。

------20191014勉

Git的精简用法的更多相关文章

  1. Eclipse Git和sourceTree用法

    Eclipse Git和sourceTree用法 Eclipse Git: 提交代码到git: 1.team->Repository->pull 若没有冲突: 2.team->com ...

  2. git的基本用法——我的日常使用

    git的基本用法 一,前言 网上有太多关于git的用法说明,而我看得云里雾里,可能是本人比较愚笨.平常时间老问别人又觉得很不好意思,估计大多的同学们都是自己解决.后来我想到了买一本书,淘宝上git书籍 ...

  3. Git merge && git rebase的用法

    Git merge的用法: git merge Dev // Dev表示某分支,表示在当前分支合并Dev分支 git merge -m  “Merge from Dev”  Dev //-m可以加上m ...

  4. git clone、git pull和git fetch的用法及区别

    声明:码字不易,转载请注明出处,欢迎文章下方讨论交流.Git 常用命令速查表 最近在一个学习小组里学习AI的课程,我们所有的学习资料和homework都放在gitlab上.今天一个小队友从gitlab ...

  5. Git的一些用法

    三. Git的一些用法 1. .gitignore文件 屏蔽文件 : .gitignore文件是告诉Git哪些目录或者文件需要忽略, 这些文件将不被提交; 常用场景 : 写完代码后会执行变异调试等操作 ...

  6. git日常基本用法

    git作为项目管理现在已经是越来越广泛应用,结合自己平时的一些基本操作加上git说明文档里面的一些补充,我总结了一下git的基本用法: mkdir project # 创建项目目录 cd projec ...

  7. github+git提交 基础用法

    git版本管理基本用法: 安装就不用说了 随便一搜 安装完 妥妥的.下边说的是在github从新建一个项目开始: 1.首先打开自己的github地址,如下图所示 点加号 选 New repositor ...

  8. 问题: 查看某个文件的修改记录| git log 高级用法

    参考文章: git查看某个文件的修改历史 5.3 Git log 高级用法 基本步骤 git log --pretty=oneline [文件名] git show [节点] git log 两周高级 ...

  9. Git stash 常见用法

    Git stash git stash这个命令可以将当前的工作状态保存到git栈,在需要的时候再恢复 1.1 git stash  保存当前的工作区与暂存区的状态,把当前的工作隐藏起来,等以后需要的时 ...

随机推荐

  1. Kafka系列2:深入理解Kafka消费者

    Kafka系列2:深入理解Kafka消费者 上篇聊了Kafka概况,包含了Kafka的基本概念.设计原理,以及设计核心.本篇单独聊聊Kafka的消费者,包括如下内容: 生产者是如何生产消息 如何创建生 ...

  2. 【题解】P1908 逆序对——归并算法

    先吐槽 这题做了两天,昨天讲分治,老师用归并讲了一遍,今天又用树状数组讲了一遍 归并不难,啊啊啊我居然才调出来 思路 归并两个数组时,对于第二个数组的元素a[c2],它与第一个数组中目前还没归到总数组 ...

  3. C/C++中的排序和查找

    以下内容来自<C/C++程序设计实用案例教程> 1.排序 1.1使用qsort函数 C/C++库函数提供了快速排序函数qsort(q时quick的简写),需要引入头文件<stdlib ...

  4. 一个sio.c的实现及遇到的多任务执行问题

    https://sourceforge.net/p/cadcdev/lwip/ci/491e00038f26dc5d775f120aa49519a066819ebf/tree/kos/sio.c /* ...

  5. Lua类的继承 参考实现

    参考url: https://blog.codingnow.com/cloud/LuaOO 最近在思考lua类的继承实现 ,参考了云风的类实现,感觉他的更像是接口写法.于是尝试用自己的方式重写了类实例 ...

  6. rfc文档

    你会看到很多网上关于标准的rfc文档. 如何阅读rfc 文档. https://juejin.im/post/5bf1948ff265da61553a6c97 从一个普通的RFC文档上升到Intern ...

  7. 用C语言实现汉诺塔自动递归演示程序

    用C语言实现汉诺塔自动递归演示程序 程序实现效果 1.变界面大小依照输入递归数改变. 2.汉诺塔自动移动演示. 3.采用gotoxy实现流畅刷新. 4.保留文字显示递归流程 程序展示及实现 githu ...

  8. C# 如何实现完整的INI文件读写类

    作者: 魔法软糖 日期: 2020-02-27 引言 ************************************* .ini 文件是Initialization File的缩写,即配置文 ...

  9. HTML连载69-透视属性以及其他属性练习

    一.透视属性 1.什么是透视 透视简单来说就是近大远小 2.​注意点:一定要注意,透视属性必须添加到需要呈现近大远小效果的​元素的父元素. 3.​格式:perspective:数字px; 这里的数字代 ...

  10. 五种编程语言解释数据结构与算法——顺序表3(JavaScript与Python语言实现)

    7.JavaScript语言实现 7.1.用ES6语法编写顺序表类 //1.创建类 class MyList { //1. initList(&L):初始化表.构造一个空的线性表.放回值应该是 ...