- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一篇文章,教你学会Git
以上包括一些简约而常用的命令,但是先不关怀这些,先来了解下面这4个专出名词。
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:近程仓库
工作区
程序员进行开发改动的地方,是你当前看到的,也是最新的。
平常我们开发就是拷贝近程仓库中的一个分支,基于该分支进行开发。在开发过程中就是对工作区的操作。
暂存区
.git名目下的index文件, 暂存区会记录git add添加文件的相关信息(文件名、大小、timestamp...),不保存文件实体, 通过id指向每个文件实体。可以使用git status查看暂存区的形态。暂存区标记了你当前工作区中,哪些内容是被git管理的。
当你完成某个需求或功能后需要提交到近程仓库,那么第一步就是通过git add先提交到暂存区,被git管理。
本地仓库
保存了对象被提交 过的各个版本,比起工作区和暂存区的内容,它要更旧一些。
git commit后同步index的名目树到本地仓库,便利从下一步通过git push同步本地仓库与近程仓库的同步。
近程仓库
近程仓库的内容可能被分布在多个地点的处于协作关系的本地仓库修改,因而它可能与本地仓库同步,也可能不同步,但是它的内容是最旧的。
小结
任何对象都是在工作区中诞生和被修改;
任何修改都是从进入index区才开头被版本把握;
只要把修改提交到本地仓库,该修改才能在仓库中留下痕迹;
与协作者共享本地的修改,可以把它们push到近程仓库来共享。
下面这幅图愈加直接阐述了四个区域之间的关系,可能有些命令不太清楚,没关系,下部分会具体引见。
二、常用Git命令
网上找了个图,别人整理的一张图,很全很好,借来用下。下面具体解释一些常用命令。
HEAD
在把握具体命令前,先理解下HEAD。
HEAD,它一直指向当前所处分支的最新的提交点。你所处的分支变化了,或者产生了新的提交点,HEAD就会跟着转变。
add
add相关命令很简约,次要实现将工作区修改的内容提交到暂存区,交由git管理。
git add .
添加当前名目的全部文件到暂存区
git add
添加指定名目到暂存区,包括子名目
git add
添加指定文件到暂存区
commit
commit相关命令也很简约,次要实现将暂存区的内容提交到本地仓库,并使得当前分支的HEAD向后移动一个提交点。
git commit -m
提交暂存区到本地仓库,message代表说明信息
git commit -m
提交暂存区的指定文件到本地仓库
git commit --amend -m
使用一次新的commit,替代上一次提交
branch
涉及到协作,自然会涉及到分支,关于分支,或许有呈现分支,切换分支,创建分支,删除分支这四种操作。
git branch
列出全部本地分支
git branch -r
列出全部近程分支
git branch -a
列出全部本地分支和近程分支
git branch
新建一个分支,但照旧停留在当前分支
git checkout -b
新建一个分支,并切换到该分支
git branch --track
新建一个分支,与指定的近程分支建立追踪关系
git checkout
切换到指定分支,并更新工作区
git branch -d
删除分支
git push origin --delete
删除近程分支
关于分支的操作虽然比较多,但都比较简约好记。
merge
merge命令把不同的分支合并起来。如上图,在实际开放中,我们可能从master分支中切出一个分支,然后进行开发完成需求,两头经过R3,R4,R5的commit记录,最终开发完成需要合入master中,这便用到了merge。
git fetch
merge之前先拉一下近程仓库最新代码
git merge
合并指定分支到当前分支
一般在merge之后,会消灭conflict,需要针对冲突情况,手动解除冲突。次要是由于两个用户修改了同一文件的同一块区域。如下图所示,需要手动解除。
rebase
rebase又称为衍合,是合并的另外一种选择。
在开头阶段,我们处于new分支上,执行git rebase dev,那么new分支上新的commit都在master分支上重演一遍,最终checkout切换回到new分支。这一点与merge是一样的,合并前后所处的分支并没有转变。git rebase dev,通俗的解释就是new分支想站在dev的肩膀上连续下去。rebase也需要手动处理冲突。
rebase与merge的区分
现在我们有这样的两个分支,test和master,提交如下:
? ? ?D---E test
? ? /
文档评论(0)