使用git开发或多人开发,创建,删除,合并与解决冲突

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

所以,团队合作的分支看起来就像这样:在这里插入图片描述
1.查看分支

// 下面带星号的为当前本地分支
 git branch
* dev
  master

// 查看远程分支
git branch -a
* dev
  master

输入q退出查看

2.创建分支,切换分之,并把当前分支推送到远程仓库

// name分支名字
创建分支: git branch name

切换分支: git checkout name   或者 git switch <name>

创建+切换分支: git checkout -b name 或者 git switch -c name

把当前分之推送到远程仓库:
git push -u origin name

把当前新创建的分支推送到远程仓库并做关联
git push origin originrName:name

若远程已有分支,创建本地分支和远程分支做关联
git checkout -b 本地分支名 origin/远程分支名

3.合并分支(推荐使用第二种,以当前情况而定)

把dev分支合并到当前分支上:  git merge dev

通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并
而fast forward合并就看不出来曾经做过合并。
git merge --no-ff dev

4.合并解决冲突(一般只有多人共同开发一个项目才会出现这种情况)

当使用合并命令后出现下面几行错误说明合并发生了冲突(readme.txt表示冲突的文件,这里只是举例)

Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
这个命令告诉我们冲突的文件: git status

因此,多人协作的工作模式通常是这样:

首先,可以试图用 git push origin name 推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用 git pull 试图合并;

git无法pull仓库refusing to merge unrelated histories
合并pull两个不同的项目:git pull origin master --allow-unrelated-histories
如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用 git push origin name 推送就能成功!

如果 git pull 提示 no tracking information,则说明本地分支和远程分支的链接关系没有创建
用命令 git branch --set-upstream-to name origin/name

5.删除本地分支,与删除远程仓库分支

删除本地的bug_xzx分支
git branch -d name

删除远程的bug_xzx分支
git push origin --delete name
git push origin :name  //也可以直接推送一个空分支上去

6.获取远程仓库最新代码

git pull

本文参考廖雪峰的git教程而写,用于笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值