gitbub感想

Git 是 Linux 的创始人 Linus Torvalds 开发的开源和免费的版本管理系统,利用底层文件系统原理进行版本控制的工具。Git是目前为止最著名运用最好最受欢迎的分布式的配置管理工具。
早期的版本控制系统以svn为代表属于集中式版本库模式,每个chengxvyuan在本地有一个工作目录树,其内容是该版本库仲最新代码。当他们在工作目录树中完成代码修改后,把改动提交回版本库中。这类集中式版本控制系统的局限性在于,如果查询历史修改记录,必须与服务器上的版本库通信。
以git为代表的分布式版本控制系统,客户端不需要从一个单一的中央代码库同步代码,每个断电代码的拷贝都是真正的代码库。这种方式决定了分布式系统与集中式系统的优势在于:
1.由于不需要与中央服务器进行通信,因此一般的操作(如提交,查看历史和还原修改等)的执行速度非常快.只有在向其它端点push代码更改或者从其它端点pull代码更改的时候才会需要进行通信.
2.每一份代码拷贝都可以作为代码库及其更改历史的一份远程备份,这就为数据丢失提供了天然的保护.
鼓励测试性的branch - 创建或者销毁branch的操作简单而且快速.
Mercurial是与git类似的分布式版本管理系统。通常来讲,Git相比Mercurial在处理branching方面表现更好,尤其是用于试验和检查点的短期branch.

Git有一个被称为"staging area"的区域.在你向代码库提交之间, 你可以在这个中间区域中构建你的提交.更为重要的是,你可以只提交部分的修改,而不是将所有修改的文件都进行提交.你甚至可以只提交一个文件中修改的一部分.
使用git init 命令后,就会创建一个.git目录,git add 添加到staging area区域,
git commit 提交修改,
git branch RB1.0 master,在主分支上创建RB1.0的分支,
git check ***,切换不同分支。
git tag1.0 RB_1.0 为RB_1.0的分支打上1.0的标签。
git rebase,顾名思义,就是重新定义(re)起点(base)的作用,即重新定义分支的版本库状态。
假如现在我们的版本库如下:
master0(初始化后的版本)
||
master1===test0==>test1===>test2
||
master2===>master3
如果我要让test分支从test0到test2之间所有的改变都添加到master分支来,使得master分支包含test分支的所有修改。这个时候就要用到git rebase。
我们切换到master分支,然后运行下面的命令,即可实现我们的要求:
git rebase test
git reset 回退到某次提交后的为暂存状态
git diff 查看文件差异
git clone 创建远程版本库的本地拷贝,从一个远程叫做“origin”的主分支上,创建一个本地的分支,也跟踪远程的其他所有分支。
git pull 需要加入远程版本库名称和远程分支名。可以顺序完成两件事,取来,然后合并。
git fetch 和pull 类似,不过不会做任何合并。
git push 可以指定推入版本库推入。

gitflow
· git flow是一套管理基于git 的管理branch的模型流程,屏蔽了git的底层命令,向用户提供更高一级的命令用于源码的版本管理。它把branch分为两个主要分支,三个支援分支。
主要分支:
master:永远在production-ready状态。
develop:最新的下次发布开发状态。
支援分支:
feature branches:开发新功能从develop分支出来,完成后meger回去develop。
release branches:准备要release的版本,只修bugs。从debelop分支出来,完成后merge回master和develop。
hotfix branches:等不及release版本就bixv马上修复master赶上线。从master分支出来,完成后merge回master和develop。

在mac下命令行输入brew install git-flow安装。
使用git flow init 初始化。
初始化会自动生成上述的分支。
有任何开发,先开branch
git flow feature start feature1
完成后输入 git flow feature finish feature1 会自动合并回develop并删除这个branch
push 一个feature branch到远端
git flow feature publish feature1 或git push origin feature/feature1
追踪一个远端branch
git flow feature track feature1 或git checkout -b feature/feature1 -t origin/feature1
如果你在’追踪分支‘‘(Tracking Branches)上执行推送(push)或拉取(pull)时, 它会自动推送(push)或拉取(pull)到关联的远程分支上.

github的使用原则是:
1.任何在master分支上的都是可以部署的。
2.开发任何新功能,要创建一个不在主干上的自己命名的分支。
3.当你需要反馈或者帮助,或者你觉得准备好可以融合到主干上,打开一个pull request。
4.当其他人都审核新代码之后,你可以把它融入master上。
5.一旦融合和推入到master上,你可以而且应该立即部署下来。

与gitflow类似的工作流或者版本管理工具还有
redmine 基于ROR的项目管理工具,需要插件
DOTProject 基于LAMP项目管理工具
phabricator 开源的code review+repository browser+bug tracker+wiki facebook开源出来
gerrit 成熟的代码review流程
youtrack 问题跟踪,bug跟踪
trakr 提供直观的工作流
上述都没有亲自对流程使用,并不能提供每个优劣比较。

github
GitHub 是一个用于使用Git版本控制系统的项目的基于互联网的存取服务。
GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单︰首先点击项目站点的“fork”的按 钮,然後将代码检出并将修改加入到刚才分出的代码库中,最後通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的Facebook。
在GitHub进行分支就像在Facebook进行交友一样,在社会关系图的节点中不断的连线。
开源项目可以免费托管,但私有版本库则并不如此。
githup的安装参见github的主页,需要安装git,本地生成公钥和私钥,打开本地生成的公钥,github网站上账号添加相应的公钥串。
类似的社区化代码托管网站bitbucket,相比很多功能类似,不过有一个免费的私人版本库的空间

时间: 2024-08-11 17:30:51

gitbub感想的相关文章

读《平凡的世界》感想(一)

读<平凡的世界>感想(一) 平凡的世界是一本经典的书,一直想看,最近终于开始品读这部巨著."平凡的世 界"是路遥文集中份量最重的一部长篇,全景式地描写了中国现代城乡生活,通过复杂 的矛盾纠葛,以孙少平等人位代表刻画了社会各阶层普通人们的形象,人生的自尊.自 强与自信,人生的奋斗与拼搏,挫折与追求,痛苦与欢乐,纷繁地交织,读来令人荡气 回肠. 全书的主角是孙少平,他是一个平凡而普通的人,他没有过人的武艺或超群的智慧, 他也有世俗的攀比心和青年人的迷茫:那他凭什么成为一部文学巨

【软件工程】一个学期软件工程课的感想

软件工程课是个不错的课,因为教课老师嗓门很大,PPT做的很有意思,上课从来没有点过我的名字,万分荣幸. 软件工程课的脉络很清晰,就是个各种软件开发,个人软件开发,结对软件开发还有结组软件开发.针对这三种软件开发,各写了一个程序,就从这三个程序入手说起吧. 一.              查询一段英文短文中的单词出现的频度.说实话,遇到这样的题,我只想说一句:呵呵.这样的题网上肯定一大堆,随便百度一个就交差了.但是这是第一个程序,那么简单就直接放弃挣扎是不是太弱了,于是就自己写了一个,写了好久,但

读&lt;&lt;大数据时代&gt;&gt;的一些感想

第一次听说<<大数据时代>>这本书,是在网上看到的央视搞的一个2013中国好书评选活动推荐的25本"中国好书"的榜单中看到的.然后迅速上豆瓣上查看了一下对该书的评价,一看非常高,再加上央视的推荐是从2013在中国出版的40册图书中选出25本,可以说是精华了.果断定了一本,花了三天时间读完了.   大数据这个名词或者说概念从被提出开始,经过短短几年的发展,已经传的沸沸扬扬了,经常见诸媒体上.好像哪家媒体的科技板块每天不弄一些这样的新闻条,它就显得不够档次一样.这是

天翼杯大数据算法应用大赛感想

竞赛过去很久了,早就想写写感想与经历,可是一直拖着没写.今天终于有时间了,就写写吧. 竞赛题目是视频网站推荐,根据前七周每天用户对10个视频网站的访问次数数据以及其他上网行为,预测用户第八周对10个视频网站的访问量. 咋一看这是个时间序列预测问题,是啊,给出前49天用户访问数据,让你预测未来七天用户访问数据.这确实应该是个时间序列预测问题. 但我用时间预测算法模型Holt-Winter(3次指数平滑), ARIMA跑结果的时候,结果却并不是很好. 我后来分析了下数据,统计了七周每一周七天内用户对

Build To Win 读后感想

Build To Win感想 这学期我们上到了这门课,在还没上这门课之前,对于这本书完全没有感觉,正好是软件工程,感觉一定是枯燥乏味的内容. 就前几天,我们老师上课之前就给我们介绍了这本书.这本书如此收到好评,正是因为这本书改变了传统的软件工程的书本的一贯风格--枯燥乏味. 回去打开这本书,穿插着许多的故事,作者语言很幽默风趣,很吸引人去往下读这本书. 在这本书中,我感触比较深的就是团队合作,分配工作之类的. 第一,合理的工作分配非常重要,一个好的软件小组其管理者必须要将小组内每个成员的能力都要

项目感想 总纲-基于8051的数据采集系统

博文的内容是感想,是我在做一个小作品的时候记录下来的感想.现在将其整理好,分享出来. 我写博文的纲领是隐恶扬善,所以一些不好的事情,闭口不说.但别人对我的好,要尽力写出来. 虽然我不是大牛,感想有时显得有些幼稚,但是我依然希望你能通过我的感想得到一些启发,少走一些弯路.

本周软件工程课程感想

由于我们团队项目进行到一半,不便传上来代码.我就这周软件工程课程的内容写一点感想吧. 下面这是我们图形学课程实验的部分代码: /**********myInit**********/ void myInit() { pn = 0; glClearColor(1.0, 1.0, 1.0, 0.0); glColor3f(0.2f, 0.2f, 0.9f); glPointSize(5.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluOrth

结对编程的感想

感想 首先我觉得结对编程不适合所有人  因为有些程序员内向的还是比较多的 所以这些人可能更喜欢单独工作 而且单独工作成效更显著 但是难免不会遇到自己解决不了的问题 这时候结对编程是一个不错的选择 结对编程更适合团结协作喜欢在一起工作状态的人 如果一个水平好的程序员和一个水平不太好的人一起工作 那么水平不太好的那个更能受水平好的程序员影响学到新的东西 并且两个人一起工作能起到相互督促的作用 在疲惫的时候起到相互鼓励的作用 两个人的交流增加 关系也会变的融洽 不但在工作过程中增加了乐趣 而且达到了事

开发项目和所用时间 感想

开发项目和所用时间: 我通过上课的时间,利用了这段时间按照老师的要求编写加减乘除的程序,因所学的不是很好,所以里面有一些小的错误. 感想:通过这次上课所学的东西,我了解了自己在这个课程中的好多不足,以及自己在学习中的错误方法,知道了自己在以后的学习中应该更改自己的学习方法,让自己对这个课程更加了解认识,这次的作业虽然有很多小的错误,但是我们通过交流很快的解决了这些任务,顺利的完成了这项作业,让我懂得了自己与组员密不可分,应该时常交流,弥补自己的不足,自己不仅应该在日常的生活中阅读一些关于这个课程