Git基础指令总结
- git init: 本地初始化项目,一般不太用到;
- git clone + 远程仓库地址: 将远程代码库克隆到本地;
- git branch: 查看项目分支;
- git checkout 分支名 / git checkout -b 分支 :, 大家都懂的;
- git add : 将代码提交到暂存区
- git commit -m ‘chore: fix_bugs’: 将代码提交到历史区;
- git push: 将代码提交到远程代码库;
- git log: 查看分支提交历史;
- git reset : 回退项目版本;
git reset --hard <cmomit>
Git指令深入
- git clone -b + (远程仓库对应的分支名) + 远程仓库的地址: 实现将远程代码库指定分支克隆到本地;
- git commit -m ‘chore: ui_change’ –no-verify : 可以实现忽略代码commit钩子规范,直接提交;
- git diff: 查看分支文件改动的地方
- git stash / git stash pop :
- 这个命令细说:
- 主要实现分支修改内容的冻结和解冻
- 工作中,我们需要在A分支写业务,但是线上出现bug,我们要切回到develop分支解决bug问题
- 切回develop需要将A分支的工作区清干净,但是又不想多出commit信息
- 这时候我们就用到git stash命令,将代码冻结,这样切回到develop分支,就没有什么影响了;
- 解决完bug,切回到A分支,使用git stash pop命令,解冻代码,就可以继续开心得开发业务了;
git cherry-pick : 实现分支合并指定的commit
1
2
3
4
5分支提交commit信息
dd2e86 - 946992 -9143a9 - a6fd86 - 5a6057 [master]
76cada - 62ecb3 - b886a0 [feature]
git checkout master
git cherry-pick 62ecb3git rebase :
- 这个命令功能强大
- 上文我们提到避免产生多次commit,但是本地有多个commit的时候,怎么办,那么使用这个命令可以合并多个commit,最后只提交一个commit到远程代码库;
- 最为重要的功能,可以将多个commit推送到指定的分支
- 举个例子: 假设你需要合并feature分支的commit 76cada ~ 62ecb3 到develop分支
1
2
3
4
51. 基于feature创建一个新的分支,并指明新分支的最新的commit
git checkout -b 62ecb3
2. rebase这个新分支的commit到master(--ontomaster)。76cada^ 指明你想从哪个特定的commit开始
git rebase --onto master 76cada^
3.最后feature分支的commit 76cada ~62ecb3 都被合并到了master分支
git cherry-pick :
如何用commit起死回生一个分支(即如何利用commit信息)
- 当一个项目过大,merge代码后,会删除对应的分支,但是commit信息会完整的保留下来
- 当项目需要单独维护以前的一个分支作为依赖此项目的独立分支时
- git checkout -b 62ecb3(commit的前6位ID),就会从此commit切出分支维护