Git团队开发(二)

xiaoxiao2021-02-28  39

git和svn对比:

 

SVN需要一个单独的服务器

Git不需要: 文件中、U盘中、云上、github、OSChina...

 

一、建立代码仓库(专门用于团队开发的代码仓库)

 

切换目录 cd /Users/wjq/Desktop/git演练/公司/weibo

建立空白代码库(专门用于团队开发) git init --bare

注意: 这个仓库仅仅是用于管理代码, 不参与开发

 

二、项目经理初始化项目

》2.1先克隆一份空得仓库到本地

 

切换目录 cd /Users/wjq/Desktop/git演练/经理  

git clone /Users/wjq/Desktop/git演练/公司/weibo/  

 

》2.2忽略不需要加入版本控制器的文件以及文件夹  参考网址:https://github.com/github/gitignore  

.gitignore

注意: 配置忽略文件只需要到github上搜索.gitignore拷贝别人写好的代码即可

配置.gitignore一定要在和.git隐藏文件夹同一级的目录下

》2.3生成好.gitignore文件之后, 还需要将.gitignore文件添加到版本控制

git add  .gitignore

git commit .gitignore -m””

》2.4新建项目

》 source conrol—>commit  将代码提交到本地仓库

》source conrol—>push 将代码提交到远程仓库

 

git中默认就会创建一个分支, 这个分支叫做origin/master, 相当于svn中的trunk

专业人员只需要在git仓库的hooks文件夹中写一些指令, 就可以完成自动测试(压力测试、自动测试、集成测试、冒烟测试、。。。)

 

》 和SVN一样, 如果服务器仓库的代码被修改了, 我们再提交代码也会报错。

fetch first == out of data

 

总结:

git和svn最大的区别

》1.git每次修改新增都需要add

》2.git每台电脑都有一个仓库

》3.git是先提交到本地仓库, 再提交到远程仓库

 

git的分支管理

 

分支管理 - Tag

# 查看当前标签

$ git tag

 

# 在本地代码库给项目打上一个标签

$ git tag -a v1.0 -m 'Version 1.0'

 

 

注意: 此时此刻打上的这个标签仅仅是一个本地标签。(和服务器没有关系)

#查看某个标签的信息用

git show v1.0 

#删除某个标签

git tag -d v1.0 

# 将标签推送到远程代码库中

$ git push origin v1.0

 

将所有标签一次推送到远程代码库中

 

git push origin --tags

 

删除远程的标签,你可以到github上删除,也可以

 

先删除本地的

git tag -d v1.0

 

删除远程的

git push origin :refs/tags/v1.0

# 使用tag,就能够将项目快速切换到某一个中间状态,例如产品开发线上的某一个稳定版本

# 签出v1.0标签

$ git checkout v1.0

 

# 从签出状态创建v1.0bugfix分支

$ git checkout -b bugfix1.0

 

# 查看远程分支

$ git branch -r

 

# 删除远程分支

$ git branch -r -d origin/bugfix1.0

 

开发流程:

 

1.开发2.发布3.保存稳定版本4.继续开发5.出现bug

6.分配员工到分支上修复bug

>员工从服务器下载最新代码

》员工利用git checkout v1.0指令快速切换到1.0版本

》根据提示:开启一个新的分支开始修复代码

git checkout -b 1.0bug_fix

 

7.合并修复后的代码到主线

8.备份稳定版本

 

分支管理 - branch

 

分支查看

git branch 查看本地分支 (*标识的是你当前所在的分支

git branch -r 查看远程分支

git branch -a 查看所有分支

分支创建

git branch 分支名 创建本地分支

git checkout 分支名 切换本地分支

git checkout -b 分支名 创建+切换分支

备注:要想基于某一个分支创建新分支,先切换到这一分支下再创建新分支

git checkout --track origin/分支名 远程分支和本地分支需要区分好,所以,在从服务器上拉取特定分支的时候,需要指定远程分支的名字

注意该命令由于带有--track参数,所以要求git1.6.4以上!这样git会自动切换到分支。

git push origin 分支名  远程分支就是本地分支push到服务器上。比如master就是一个最典型的远程分支(默认)

git push origin <local_branch_name>:<remote_branch_name> 提交分支数据到远程服务器(一般当前如果不在该分支时,使用这种方式提交)

git pull origin 分支名  从远程获取某一分支

git checkout -b 分支名 origin/分支名  创建远程的dev分支到本地

分支删除

git branch -d 分支名  删除本地分支

git push origin :分支名 删除服务器远程分支(分支前的冒号代表删除)

 

分支合并

合并到master中

git checkout master 切换到master

git merge 分支名 合并某一分支到master分支

 

git merge最简洁用法

一、开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支

git checkout dev git pull git checkout master git merge dev git push -u origin master

二、当master代码改动了,需要更新开发分支(dev)上的代码

git checkout master  git pull  git checkout dev git merge master  git push -u origin dev

 

一个分支的代码完全替换另外一个分支的指令:

git push origin develop:master -f

 

举个例子:

这时如果你很幸运,直接合并成功。悲伤的事情总是时有发生,“合并发生冲突”是常有的事,因此一旦出现类似下面的提示

 

CONFLICT (content): Merge conflict in ...

Automatic merge failed; fix conflicts and then commit the result.

就得自己动手解决冲突了,git会用

 

<<<<<<<HEAD

master原有的内容(当前分支内容)

=======

debug分支中冲突的内容(另一分支内容)

>>>>>>>debug

 

 

这样的格式提醒你,只要修改保留实际需要的内容后即可解决冲突,解决冲突后就可以执行git commit。

解决冲突的具体步骤:

第一步:编辑文件,删除特殊符号

第二步:把文件修改到满意的程度,保存退出

第三步:git add [文件名]

第四步:git commit -m "日志信息"     (注意:此时commit一定不能带具体文件名)

 

好了,我们合并了master和debug,

想看看git是怎么记录合并的,没问题,

 

git log --graph --pretty=oneline --abbrev-commit

就可以直接看到分支合并的过程

 

 

 

 

 

 

 

转载请注明原文地址: https://www.6miu.com/read-2622432.html

最新回复(0)