Git使用进阶

操作手册

1、Git飞行手册

Git飞行规则(Flight Rules)

这是一篇给宇航员(这里就是指使用Git的程序员们)的指南,用来指导问题出现后的应对之法。

飞行规则(Flight Rules) 是记录在手册上的来之不易的一系列知识,记录了某个事情发生的原因,以及怎样一步一步的进行处理。本质上, 它们是特定场景的非常详细的标准处理流程。 [...]

自20世纪60年代初以来,NASA一直在捕捉(capturing)我们的失误,灾难和解决方案, 当时水星时代(Mercury-era)的地面小组首先开始将“经验教训”收集到一个纲要(compendium)中,该纲现在已经有上千个问题情景,从发动机故障到破损的舱口把手到计算机故障,以及它们对应的解决方案。

— Chris Hadfield, 一个宇航员的生活指南(An Astronaut's Guide to Life)。

2、帅气的 Git 操作

操作规范

1、分支操作规范:

  1. 设置主分支,并设置不能直接提交,只能merge到该分支,一般设置master为主分支

  2. 创建自己的开发分支 develp

  3. 一般开发流程:

    1. master创建新分支develp

    2. develp分支完成功能,然后提交代码到远程(远程备份)

    3. 合并master分支代码到develp,并解决冲突,提交到远程

    4. develp分支merge到master分支

2、合并代码步骤:

  1. Step 1:checkout branchs

    1. git checkout -b beta origin/beta

    2. git checkout origin/master

  2. Step 2:merge and fix conflicts

    1. git merge --no-ff beta

    2. fix conflicts

  3. Step 3:Push the result of the merge to GitLab

    1. git push origin master

一些骚操作

1、clone骚操作:

git clone指定分支:

只拉取 dev 分支的代码: git clone -b dev https://github.com/xxx/xxx.git

git clone只拉取最后一次提交:

  1. 主要是解决仓库体积过大,导致拉取代码缓慢的问题/CI拉取代码缓慢的问题

  2. git clone https://github.com/xxx/xxx.git --depth 1 / git clone --depth 1 https://github.com/xxx/xxx.git

git clone只拉取部分目录

git clone 指定的单个目录或文件夹

  1. 创建新目录,初始化 git:

    1. mkdir qqq

    2. cd qqq

    3. git init

  2. 拉取远程仓库的git信息:

    1. git remote add -f origin https://github.com/xxx/xxx

  3. 开启 sparse clone

    1. git config core.sparsecheckout true

  4. 设置过滤关键词:

    1. echo "TestGitTests" >> .git/info/sparse-checkout

    2. 只会拉取 TestGitTests 目录下的文件

  5. 拉取仓库:

    1. git pull origin master

2、添加多个远程仓库

方式一:直接添加不同的远程端

  • 远程端1:origin

  • 远程端1:gitee

  • 提交代码的时候,需要分别提交,这一点上相对麻烦

方式二:直接添加多个远程地址(推荐使用👍)

#添加github
git remote add origin https://github.com/xxx(仓库地址)
#添加oschina
git remote add oschina https://git.oschina.net/xxxx(仓库地址)

#提交到oschina
git push oschina master(分支名)
#提交到github
git push origin master(分支名)
#从oschina更新
git pull oschina master
#从github更新
git pull origin master


可以通过-all一次提交多个仓库

配置远程仓库
git remote add origin https://url

再添加一个远程仓库
git remote set-url --add origin https://url

注意这里多次添加需要用
git remote set-url --add
不然会报错:
fatal: remote origin already exists.
或者改名
git remote add otherOrigin https://url

一次提交到所有远程仓库
git push --all

注意
git pull 是 git pull (from) origin (to) master
git push 是 git push (to) origin (from) master

3、恢复操作

恢复(放弃)新增的文件:(增)

  1. 恢复(放弃)新增的文件:git clean -xdf

恢复被删除的文件:(删)

  1. 查看删除的文件:git ls-files --deleted

  2. 恢复多个被删除的文件:git ls-files -d | xargs git checkout --

恢复对文件修改:(改)

  1. 方式一:git checkout .

  2. 方式二:git ls-files -m | xargs git checkout -- 恢复被修改的文件

从历史版本恢复文件:

恢复文件,从某个版本的文件恢复过来: 1. git checkout commit_id -- file_name 2. git checkout -- file_name 表示恢复文件到本地版本库中最新的状态

Last updated

Was this helpful?