在上一篇中,我们讲到了利用纯UI的软件如何实现代码的提交。但是在MAC机器上,是没有turtoiseGit这类软件的,所以利用命令行的方式就是我们的首选了。

下面我们来描述两种主要的Git使用场景:

场景一:在Git上有许多的开源系统,假如我想参与到开源软件的源码修改或者功能扩展中,利用Git的话,我们该如何做呢?

场景二:公司的代码寄托在Bitbucket上,并且针对开发团队新建了一个innovation_foundations_client的分支,开发团队需要提交代码给上级成员审核通过后,代码才能合并进去,该如何做?

其实这两种场景都可以利用如下的Git流程进行搞定。

第一步

在bitbucket中,打开项目所在的地址,利用git clone命令将代码复制到本地。这样我们在本地就创建了origin主分支。

git clone git@bitbucket.org:livemocha/advanced-english.git

第二步

我们需要建立本地与bitbucket上的代码的关联,并更新本地代码:

git fetch origin

第三步

我们去拿innovation_foundations_client分支上的代码,并对本地代码进行更新:

git checkout innovation_foundations_client

第四步

我们创建待提交的feature:

git checkout -b feature/SOMEDESCRIPTIVENAME

第五步

然后我们就可以对我们的项目进行任意的更改了,更改完毕以后,我们可以利用git status来跟踪哪些文件做了改变,对于这些改变的文件,我们可以利用git add命令将其包含到跟踪目录中。

git add, git rm -f 等等

第六步

当利用git status命令查看所做的更改都包含进来后,那么我们可以提交了:

git commit -m "SOME GOOD MESSAGE"

第七步

提交完毕以后,那么我们将其推送到远程服务器上:

git push origin feature/SOMEDESCRIPTIVENAME

注意这个feature的名称应该和之前创建的保持一致。

第八步

最后,你去bitbucket上,点击Create pull request菜单项,然后在左面选中你的feature,右面选择innovation_foundations_client,填写上comment,指定好reviewers,就可以提交了。

提交完毕以后,就可以在Pull requests菜单项中,看到自己提交的待审核的内容了。

其他

有时候,我们的本地代码没有及时更新,当我们需要更新的时候,我们可以运行 :

git pull origin master

那么就可以将远程的master主分支内容更新到本地,或者运行

git pull origin innovation_foundations_client

同样也可以将innovation_foundations_client子分支内容更新到本地。

这个需要根据项目情况而定来更新哪个,有时候两个都需要做的。

前端见微知著番外篇:GIT舍我其谁?的更多相关文章

  1. 前端见微知著番外篇:Bitbucket进行代码管控

    说道代码管控,一般都会提到TFS.Git等,但是在这里我们将要用到Bitbucket,其实其操作方式和Git基本上一样,但是和TFS则有很大的不同了.但是原理基本上都是一致的. 这里我不会过多的涉及到 ...

  2. 渗透测试思路 - CTF(番外篇)

    渗透测试思路 ​ Another:影子 (主要记录一下平时渗透的一些小流程和一些小经验) CTF(番外篇) ​ 笔者是一个WEB狗,更多的是做一些WEB类型题目,只能怪笔者太菜,哭~~ 前言 ​ 本篇 ...

  3. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  4. 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV

    这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...

  5. python自动化测试应用-番外篇--接口测试1

    篇1                 book-python-auto-test-番外篇--接口测试1 --lamecho辣么丑 1.1概要 大家好! 我是lamecho(辣么丑),至今<安卓a ...

  6. 知识图谱实战开发案例剖析-番外篇(1)- Neo4j是否支持按照边权重加粗和大数量展示

    一.前言 本文是<知识图谱实战开发案例完全剖析>系列文章和网易云视频课程的番外篇,主要记录学员在知识图谱等相关内容的学习 过程中,提出的共性问题进行展开讨论.该部分内容原始内容记录在网易云 ...

  7. [uboot] (番外篇)uboot之fdt介绍

    http://blog.csdn.net/ooonebook/article/details/53206623 以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为 ...

  8. Java微信公众平台开发--番外篇,对GlobalConstants文件的补充

    转自:http://www.cuiyongzhi.com/post/63.html 之前发过一个[微信开发]系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是 ...

  9. [uboot] (番外篇)uboot之fdt介绍 (转)

    以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为例 [uboot] uboot流程系列:[project X] tiny210(s5pv210)上电启动流程(B ...

随机推荐

  1. JavaScript Patterns 5.7 Object Constants

    Principle Make variables shouldn't be changed stand out using all caps. Add constants as static prop ...

  2. 【JSP】JSP基础学习记录(一)—— 基础介绍以及3个编译指令

    序: 从实现到现在一直是以.net为主,但偶尔也会参与一些其他语言的项目.最近需要对一个Java Web项目进行二次开发,一直没学习过JSP所以买了几本书自学试试.参考资料为<轻量级Java E ...

  3. 【故障处理】队列等待之enq IV - contention案例

    [故障处理]队列等待之enq IV -  contention案例 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也 ...

  4. python基础(二)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 简单的数据类型以及赋值 变量不需要声明 Python的变量不需要声明,你可以直接输 ...

  5. DDNS

    一.DDNS简介 DNS,域名系统,是因特网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人们更方便的访问互联网. DDNS,动态域名系统,是域名系统(DNS)中的一种自动更新名 ...

  6. linux系统的7种运行级别

    Linux系统有7个运行级别(runlevel)运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆运行级别2:多 ...

  7. android MotionEvent 获取长按压时间长

    思路: 1.记录ACTION_DOWN的aX, aY坐标: 2.在ACTION_MOVE判断是否移动,移动则取消记录时间,没移动就记录: 3.记录时间,按下坐标,移动坐标分别显示在TextView a ...

  8. linux vi编辑器操作手册

    简介 Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配.注意,vi 仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但是不像 Windows 下的 word 有排版功 ...

  9. Token Based Authentication in Web API 2

    原文地址:http://www.c-sharpcorner.com/uploadfile/736ca4/token-based-authentication-in-web-api-2/ Introdu ...

  10. 理解 Linux 网络栈(2):非虚拟化Linux 环境中的 Segmentation Offloading 技术

    本系列文章总结 Linux 网络栈,包括: (1)Linux 网络协议栈总结 (2)非虚拟化Linux环境中的网络分段卸载技术 GSO/TSO/UFO/LRO/GRO (3)QEMU/KVM + Vx ...