1.远程仓库
对于远程仓库添加方式有两种方式:
-
在本地创建好本地仓库,将其与远程创建仓库进行关联,对于这种方式,个人并未使用过。
-
关联远程库:
git remote add origin git@https://gitee.com:账户名:/xxx.git
-
-
个人常使用的方式:在远程创建仓库,然后通过命令克隆到本地
-
克隆远程库:
git clone git@https://gitee.com:账户名:/xxx.git
-
2.分支管理
- 在git学习笔记(一)版本回退中,我们知道git的版本是一条时间线,而这条时间线其实就是一个分支,而默认情况下也是只有一条时间线,一个分支即主分支(
master
)。 HEAD
指向master
,master
指向提交;而HEAD
指的就是当前分支
2.1 创建分支
-
当我们创建分支,如
a
,则git将创建一个与master
相同概念的a
,而HEAD
指向改变,将从master指向a
,表示当前分支在a
上。 -
HEAD
指向a
后,对工作区的修改和提交都将针对a
分支 -
在
a
上的工作完成后,确认无误,则将a
合并到master上。 -
合并方式是直接将
master
指向a
的当前提交 -
合并结束后删除
a
分支
2.2 实战
-
创建
a
分支,并切换到新a
分支git checkout -b a -b:创建切换 或 git switch -c a
-
查看当前分支,当前分支,在分支前有
*
标志git branch
-
切回到主分支
git checkout 或 git switch master
-
将
a
分支的工作合并到master
分支上git merge a merge 命令用于合并指定分支到当前分支
-
删除
a
分支git branch -d a -d是--delete的缩写,指的是删除分支
2.3 解决冲突
- 冲突标志:
<<<<<<<,=======,>>>>>>>
- 解决冲突,修改需要版本,再次添加提交
2.4 bug 分支
-
背景:在我们实际项目开发中,可能一个功能模块并没有开发完,但是遇到一个紧急需要解决的bug,那该如何处理这个问题?
-
解决方案:使用
stash
功能,将当前的工作现场隐藏起来,先处理该紧急bug,在进行我们当前的任务开发。 -
实战
- 查看当前工作区
git status
- 隐藏当前工作现场,并备份当前工作区的内容(从最近一次
commit
中读取相关内容)
git stash
- 确定是哪个分支需要修复的bug,并切换到当前分支(以主分支为例)
git checkout master
- 创建临时分支
git checkout -b bug1
- 接下来,我们可以在bug1分支里进行操作,修复后,添加、提交
- 修复后,切换到
master
主分支,并完成合并,最后删除bug1
分支
git switch master git merge --no-ff -m "bug1修复" bug1修复 git branch -d bug1
- 查看之前的工作现场
git stash list
- 恢复之前工作现场(恢复现场同时删除
stash
)
git stash apply (恢复) git stash drop (删除) 或 git stash pop
-
倘若说,我们当前的bug在其它的分支上也存在,怎么办?在一次重复上诉操作不就非常麻烦。不用担心,git提供更简单的方式
git cherry-pick 某次提交
2.5 Feature 分支
-
在实际项目场景中,我们需添加新的功能,但是在该功能稳定前,我们并不想加入我们的分支;我们可以创建一个feature分支,在上面进行开发、合并、最后删除。
git switch -c feature-1
-
其它操作和切换分支差不多
2.6 多人协作
-
查看远程库信息
git remote - v:显示更详细信息
-
推送分支
git push origin 分支