GIT分支
分支在GIT中相对较难,分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,我们就需要处理一些问题了!
git branch # 列出所有本地分支
git branch -r # 列出所有远程分支
git branch [branch-name] # 新建一个分支,但依然停留在当前分支
git checkout -b [branch] # 新建一个分支,并切换到该分支
git merge [branch] # 合并指定分支到当前分支
git branch -d [branch-name] # 删除分支
git push origin --delete [branch-name] # 删除远程分支
git branch -dr [remote/branch] # 删除远程分支
git版本穿梭
回到第二个版本
git reset --hard 版本号
Git 切换版本,底层其实是移动的 HEAD 指针,具体原理如下图所示。
git分支操作
# -------------------------------------------------------
git branch -v # 查看分支
# -------------------------------------------------------
git branch 分支名 # 创建分支
# -------------------------------------------------------
git checkout 分支名 # 切换分支
# -------------------------------------------------------
git merge 分支名 # 把指定的分支合并到当前分支上
# -------------------------------------------------------
合并分支
正常合并
演示:在 master 分支上合并 hot-fix 分支
冲突合并
冲突产生的原因:
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替
我们决定使用哪一个。必须人为决定新代码内容。
解决
1、查看冲突部分
2、手动清除多余部分
3、重新上传(注意:此时使用 git commit 命令时不能带文件名)
团队协作
团队内协作
团队协作
1. 项目经理初始化远程仓库
一定要初始化一个空的仓库; 在github上操作
2. 项目经理创建本地仓库
git remote 别名 仓库地址(https)
git init ; 将源码复制进来
修改用户名 修改邮箱
git add
git commit
3. 项目经理推送本地仓库到远程仓库
清理windows凭据
git push 别名 分支 (输入用户名 密码;推完之后会附带生成远程跟踪分支)
4. 项目邀请成员 & 成员接受邀请
在github上操作
5. 成员克隆远程仓库
git clone 仓库地址 (在本地生成.git文件 默认为远程仓库配了别名 orgin)
只有在克隆的时候 本地分支master 和 远程跟踪分支别名/master 是有同步关系的
6. 成员做出贡献
修改源码文件
git add
git commit
git push 别名 分支 (输入用户名 密码;推完之后会附带生成远程跟踪分支)
7. 项目经理更新修改
git fetch 别名 (将修改同步到远程跟踪分支上)
git merge 远程跟踪分支
远程仓库操作
git remote -v 查看当前所有远程地址别名
git remote add 别名 远程地址 起别名
git push 别名 分支 推送本地分支上的内容到远程仓库
# ---------------------------------------------
git pull 远程库地址别名 远程分支名 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并
git clone 远程地址 将远程仓库的内容克隆到本地
1、演示:查看当前所有远程地址别名、起别名、推送本地分支上的内容到远程仓库
2、演示:将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并
实现本地库和远程库同步代码
3、将远程仓库的内容克隆到本地
clone 会做如下操作。1、拉取代码。2、初始化本地仓库。3、创建别名
git clone 远程地址 将远程仓库的内容克隆到本地
附