git笔记 - 超常用指令

97 阅读4分钟

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 develop

PS: 默认情况下,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>