1. git 简要说明
1.1 参考文档
1.2 git下载
- 可直接在git官网下载最新安装包
- 应官网下载非常缓慢,现提供当前最新安装包【2.48.1 For Windows】在百度网盘
网盘地址:pan.baidu.com/s/1jH50K6Eu… 提取码 iqex
2. 实战命令
2.1. develop分支操作
2.1.1. git创建develop分支的命令:
git checkout -b develop master
2.1.2. 将develop分支发布到master分支的命令:(非合并人员禁止操作)
# 切换到Master分支 git checkout master # 对develop分支进行合并 git merge --no-ff develop # 或者使用命令 # git pull origin developPS: 默认情况下,git会用Fast forward(快进式合并)模式,这种模式下,会直接将Master分支指向Develop分支,删除分支后,会丢掉分支信息。使用--no-ff参数后,强制禁用Fast forward模式,会执行正常合并,在Master分支上生成一个新节点,git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
fast forward模式:
--no-ff,禁用fast forward模式:
2.2. feature分支操作
2.2.1 创建一个功能分支:
git checkout -b feature-x master
2.2.2 开发完成准备上线,将功能分支合并到master分支:(非合并人员禁止操作)
git checkout master
git merge --no-ff feature-x
2.2.3. 删除feature分支:
git branch -d feature-x
2.3. fix - 修补bug分支
2.3.1. 创建一个修补bug分支:
git checkout -b fixbug-0.1 master
2.3.2. 修补结束准备上线,合并到master分支:(非合并人员禁止操作)
git checkout master
git merge --no-ff fixbug-0.1
git tag -a 0.1.1
2.3.3. 最后,删除"修补bug分支":
git branch -d fixbug-0.1
2.5. 每日同步拉取父分支
2.5.1 父分支为develop分支
git pull origin develop
2.5.2 父分支为master分支
git pull origin master
2.6. 冲突的解决
务必注意合并选择,谨慎使用【采用当前更改】【采用传入的更改】,根据需求【比较更改】后考虑使用【保留双方更改】or【采用当前更改】【采用传入的更改】
2.7. 更改的暂存
git stash
2.8. 场景模拟
2.8.1. 场景一
新功能的研发,需要从master创建新的分支【git checkout -b feature-x master】,如何在远程创建同名的分支【在当前新本地分支直接使用git push推送即会在远程创建同名分支,若不可以的话,使用git push --set-upstream origin feature-x】,该研发时间较长,每天需要同步master分支的更新【git pull origin master】
2.8.2. 场景二
更改的代码都于前一天提交并推送至临时分支的远程分支(即当前环境没有更改),新的一天继续开发未完成的新功能,使用命令[git pull origin master]拉取远程的master分支时,发现文件有冲突,该如何解决冲突并合并呢?
答:在vscode的可视化git工具中,可以看到合并的更改,点击文件解决冲突。而后push。
2.8.3. 场景三
前一天更改的代码部分没有提交推送至临时分支的远程分支(即当前环境有更改),新的一天继续开发未完成的新功能 1、使用命令[git pull origin master]拉取远程的master分支时,发现拉取失败,原因是本地更改未提交的文件与master分支有冲突,该如何处理?
答:首先使用命令【git stash】将当前更改暂存堆起来。【使用场景二的操作】后,再使用命令【git stash pop】将暂存堆推出第一条。然后在根据个人需求去commit和push。
附录i(常用指令)
分支相关
查看本地分支 git branch 查看远程分支 git branch -r 查看所有分支 git branch -a 删除本地分支 git branch -d 分支名 删除未和上游merge的本地分支 git branch -D 分支名 删除远程分支 git push origin :分支名
查看origin详清 git remote show origin 同步origin主机对于git分支的删除操作 git remote prune origin
查看未合并到指定分支的所有分支 git branch -r --no-merged origin/master 查看已合并到指定分支的所有分支 git branch -r --merged origin/master
中止正在进行的合并操作 git merge --abort
拉取相关
将某个远程主机的更新全部取回本地 git fetch
拉取远程分支到本地 git checkout -b 远程分支名 origin/远程分支名 拉取远程分支部分文件到本地 git checkout origin/远程分支名 xxx文件相对路径
拉取某次提交 git cherry-pick xxx哈希值
远程源相关
查看远程源 git remote -v 删除远程源 git remote rm 添加远程源 git remote add <your_Remote_Url> 替换远程源 git remote set-url <new_Your_Remote_Url> 创建孤立分支(即只保留当前代码,不保留commit提交记录) git checkout --orphan <your_Branch>