Git 使用整理(二)

来源:互联网 发布:linux mint哪个版本 编辑:程序博客网 时间:2024/06/02 05:05

相关文章

《Git 使用整理(一)》

《Git 使用整理(二)》

《Git 在 Android Studio 中的使用(图解)》

《SVN在Android studio中的使用》

相关整理

Git 常用令名使用整理

Git 在Android Studio中的使用整理


九、使用分支
1.创建、查看、合并分支
创建dev分支,并且切换到dev分支:git checkout -b dev
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev
git checkout dev

查看当前分支:git branch
查看远程分支:git branch -a

我们在dev分支上进行添加修改操作,然后我们把dev分支的工作成果合并到master分支上:
切换到master分支:git checkout master
合并分支:
git merge dev
git merge dev -m”注释”
git merge --no-ff  -m “注释” dev  禁用Fast-forward模式合并分支

git merge命令用于合并指定分支到当前分支。
注意到git merge的信息里面可能有Fast-forward字样,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。通常合并分支时,git一般使用”Fast forward”模式,在这种模式下,删除分支后,会丢掉分支信息,如果需要保留分支信息,我们可以使用带参数 --no-ff来禁用”Fast forward”模式
2.解决冲突
现在,我创建一个分支dev,然后在分支上做一些修改,切换到master分支,在同样的地方做修改,最后合并分支,我们会发现合并失败。这时,我们需要先解决冲突,然后使用命令(git add 和 git commit)提交代码。查看下图:

3.将本地分支推到远程仓库
命令:git push origin(别名) dev(分支名)
4.在本地创建和远程分支对应的分支(创建远程仓库的分支到本地)
命令:git checkout -b branch-name origin/branch-name
本地和远程分支的名称最好一致,origin/branch-name为远程分支的别名和分支名,建议先使用git branch -a命令查看
5.建立本地分支和远程分支的关联
命令:git branch --set-upstream branch-name origin/branch-name
origin/branch-name为远程分支的别名和分支名,建议先使用git branch -a命令查看
6.删除分支

合并完成后,就可以放心地删除dev分支了:
删除本地分支:git branch -d dev
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <branch>强行删除。
删除远程分支(顺序执行下面两条命令)
git branch -r -d origin/branch-name  
git push origin :branch-name 

Origin和branch-name为远程分支的别名和分支名,建议先使用git branch -a命令查看
7.bug分支

在开发中,会经常碰到bug问题,那么有了bug就需要修复,在Git中,分支是很强大的,每个bug都可以通过一个临时分支来修复,修复完成后,合并分支,然后将临时的分支删除掉。
比如我在开发中接到一个bug时候,我们可以创建一个bug分支来修复它,但是,当前的分支上的工作还没有提交。并不是我不想提交,而是工作进行到一半时候,我们还无法提交,怎么办呢?Git还提供了一个stash功能,可以把当前工作现场 ”隐藏起来”,等以后恢复现场后继续工作。
相关命令:
隐藏工作现场:git stash
恢复第一个stash,但并不删除stash内容:git stash apply
删除stash内容:git stash drop
恢复stash同时删除该stash:git stash pop



十、多人协作
当有多个人开发一个项目时,那么每个人都会对仓库中的文件进行修改,而且需要将修改的内容告诉别人,还需要获取到别人修改的内容,这就是多人协作了。
在上面 “远程仓库” 和 “使用分支” 部分,已经说了一些远程仓库使用的命令了(比如关联远程仓库、推送本地仓库(分支)到远程仓库(分支)、查看远程仓库的版本信息、从远程仓库克隆代码到本地、在本地建立和关联远程仓库对应的分支等),下面查看其它命令以及一个使用实例:
1.抓取远程分支
抓取远程仓库的分支:git pull <origin> <branch>
有时使用 git branch –a  命令查看所有分支(包括本地和远程的)的时候。可能会发现有些分支在远程其实早就被删除了,但是在你本地依然可以看见这些被删除的分支。如果我们不想看到,可以使用以下命令清除掉:
git remote prune origin

2.模拟多人协作
在这里是使用一台电脑,创建了两个仓库(仓库A和仓库B),仓库A是在本地使用git init命令创建的,仓库B是仓库A将本地内容推送到远程仓库之后使用git clone命令从远程仓库clone下来的,所以用仓库A和仓库B来模拟多人协作。
具体的操作过程看图:
仓库A操作:


仓库B操作:


切换到仓库A继续操作:


最后操作仓库B:

3.多人协作流程
① 可以试图用git push origin branch-name推送自己的修改;
② 如果推送失败,则因为远程分支比你的本地更新早,需要先用git pull试图合并;
③ 如果合并有冲突,则需要解决冲突,并在本地提交。再用git push origin branch-name推送。

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


接下文《Git 在 Android Studio 中的使用(图解)》

0 0