Git使用进阶
操作手册
1、Git飞行手册
这是一篇给宇航员(这里就是指使用Git的程序员们)的指南,用来指导问题出现后的应对之法。
飞行规则(Flight Rules) 是记录在手册上的来之不易的一系列知识,记录了某个事情发生的原因,以及怎样一步一步的进行处理。本质上, 它们是特定场景的非常详细的标准处理流程。 [...]
自20世纪60年代初以来,NASA一直在捕捉(capturing)我们的失误,灾难和解决方案, 当时水星时代(Mercury-era)的地面小组首先开始将“经验教训”收集到一个纲要(compendium)中,该纲现在已经有上千个问题情景,从发动机故障到破损的舱口把手到计算机故障,以及它们对应的解决方案。
— Chris Hadfield, 一个宇航员的生活指南(An Astronaut's Guide to Life)。
2、帅气的 Git 操作
操作规范
1、分支操作规范:
设置主分支,并设置不能直接提交,只能merge到该分支,一般设置
master
为主分支创建自己的开发分支
develp
一般开发流程:
从
master
创建新分支develp
develp
分支完成功能,然后提交代码到远程(远程备份)合并
master
分支代码到develp
,并解决冲突,提交到远程develp
分支merge到master
分支
2、合并代码步骤:
Step 1:checkout branchs
git checkout -b beta origin/beta
git checkout origin/master
Step 2:merge and fix conflicts
git merge --no-ff beta
fix conflicts
Step 3:Push the result of the merge to GitLab
git push origin master
一些骚操作
1、clone骚操作:
git clone
指定分支:
git clone
指定分支:只拉取 dev
分支的代码: git clone -b dev https://github.com/xxx/xxx.git
git clone
只拉取最后一次提交:
git clone
只拉取最后一次提交:主要是解决仓库体积过大,导致拉取代码缓慢的问题/CI拉取代码缓慢的问题
git clone https://github.com/xxx/xxx.git --depth 1
/git clone --depth 1 https://github.com/xxx/xxx.git
git clone
只拉取部分目录
git clone
只拉取部分目录创建新目录,初始化 git:
mkdir qqq
cd qqq
git init
拉取远程仓库的git信息:
git remote add -f origin https://github.com/xxx/xxx
开启 sparse clone
git config core.sparsecheckout true
设置过滤关键词:
echo "TestGitTests" >> .git/info/sparse-checkout
只会拉取
TestGitTests
目录下的文件
拉取仓库:
git pull origin master
2、添加多个远程仓库
方式一:直接添加不同的远程端
远程端1:origin
git remote add origin https://xx.com/xx.git
git push -u origin master
远程端1:gitee
git remote add gitee https://xx.com/xx.git
git push -u gitee master
提交代码的时候,需要分别提交,这一点上相对麻烦
方式二:直接添加多个远程地址(推荐使用👍)
默认添加远程仓库地址:
git remote add origin https://xx.com/xx.git
给远程仓库再次添加一个地址:
git remote set-url --add origin https://xx.com/xx1.git
git remote set-url --add origin https://xx.com/xx2.git
下次提交的时候,就会两个地址都提交上去
添加多个远程仓库,参考
3、恢复操作
恢复(放弃)新增的文件:(增)
恢复(放弃)新增的文件:
git clean -xdf
恢复被删除的文件:(删)
查看删除的文件:
git ls-files --deleted
恢复多个被删除的文件:
git ls-files -d | xargs git checkout --
恢复对文件修改:(改)
方式一:
git checkout .
方式二:
git ls-files -m | xargs git checkout --
恢复被修改的文件
从历史版本恢复文件:
恢复文件,从某个版本的文件恢复过来: 1. git checkout commit_id -- file_name
2. git checkout -- file_name
表示恢复文件到本地版本库中最新的状态
Last updated
Was this helpful?