码迷,mamicode.com
首页 > 其他好文 > 详细

Git基础知识(二)

时间:2016-04-21 07:30:11      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

前言

本篇是 Git基础知识(一)的延续,由于篇幅原因,分成两篇。

我们重新建立一个文件夹,执行git init。

添加一个有三行aaaaa内容的git.txt文件,并commit。

技术分享


分支

截止目前,我们都是在一个叫做master的分支上工作。Git允许我们创建分支去做一些其他的事儿,而不影响到你的master分支。

技术分享

1. branch

branch命令可以查看分支、创建分支以及删除分支。

a. 查看分支

git branch

技术分享

可以看到我们当前只有一个分支master,也叫主分支,*号代表当前所在的分支,这里就是matser分支。

b. 创建新的分支

git branch branch_1
git branch // 查看分支

技术分享

可以看到现在除了master分支,还多了一个branch_1分支,并且这个分支完全继承了master,相当于一个copy。当前所在分支还是master。

c. 切换到branch_1

git checkout branch_1 // 使用checkout命令
git branch // 查看分支

技术分享

当前所在分支已经切换到branch_1,接下来我们就可以在这个分支做一些开发工作了。

2. merge

Fast-forward合并

a. 我们在branch_1分支修改git.txt,添加一行bbbbb
技术分享
添加并commit

git add git.txt
git commit -m "add bbbbb"

b. 返回master分支,合并branch_1

git checkout master
git merge branch_1 // 合并分支

技术分享

此时,master分支就成功合并了branch_1分支,查看一下log,分支的commit也同样被合并进了master。

c. 这个分支的使命已经完成,删除分支

git branch -d branch_1

技术分享

这种合并是无冲突的合并,称为Fast-forward。然而事情并没总那么好,下一个小节就来看下发生冲突的情况。

Conflict合并

a. 新建一个分支branch_1,切换到该分支,编辑git.txt
技术分享

b. add、commit

c. 返回主分支

d. 很不幸,主分支也编辑了同一个地方。
技术分享

e. add、commit

f. 尝试合并branch_1

git merge branch_1

技术分享
提示有Conflict。

g. 此时文件变成酱紫了:
技术分享

h. 手工修复,选择保留的内容,假设我要保留主分支编辑的内容,就删除掉其他分支编辑的内容,必须把<<<< ==== >>>>这几行也删掉,再提交就可以了。
技术分享

小结

  1. 认识分支模型
  2. 几个基本命令
    技术分享

团队协作

目前为止,我们是个人使用git进行版本控制,然而git更牛逼的地方在于团队协作。

clone

clone命令可以克隆别人的仓库到自己的电脑本地,克隆地址可以是Url地址,也可以是本地的地址。

git clone remote_location clone_name`

我们将上诉进行版本控制的工程,即桌面上的新建文件夹,克隆一份同样到桌面,名称为clonedPrj被克隆的仓库成为远程仓库,有一个专属名称为:origin
技术分享

这样我们的桌面上便会出现一个和远程仓库一模一样的clonedPrj文件夹

fetch

fetch命令可以将远程的仓库拉取到一个叫做origin/master的分支,这个分支是无法通过git branch命令看到的,然而却是存在的。然后你可以将这个分支合并到你的主分支,这样就与远程仓库保持一致了。

a. 在原本的工程添加一个git1.txt,add,commit。

b. 在克隆的工程敲如下命令:

git fetch

技术分享

c. 合并origin/master分支

git merge origin/master

技术分享

这样便能与远程仓库保持一致了

push

既然你已经通过clone或者fetch和merge,使你的仓库与远程仓库一致,那就意味着你准备好协作开发了。

a. 首先新建一个branch_1分支,切换到该分支。

b. 编辑git1.txt文件
技术分享

c. add commit

d. 将你的分支push给远程仓库git push origin your_branch_name

git push origin branch_1

技术分享

这样就将当前分支push给了远程仓库,它那边会出现一个被push的分支,至于合不合并,那就是远程仓库的事了。
技术分享

协作一般流程

  1. 第一次克隆或者进行fetch、merge操作,保持与远程同步
  2. 必须创建一个新的分支
  3. 开发
  4. fetch、merge操作,再次与远程同步
  5. 将分支push给远程

小结

  1. 认识远程仓库
  2. 几个基本命令
    技术分享

Git基础知识(二)

标签:

原文地址:http://blog.csdn.net/leelit/article/details/51201584

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!