Donald x Blog

Git 实践

2021/10/11 10:31

将本地与远程仓库回退到某一 commit

  1. 查看回退目标 commit 的id

    $ git log
    
  2. 回退到之前的版本

    $ git reset --hard <COMMIT_ID>
    
  3. 覆盖远程仓库的版本,需要加上参数 --force

    $ git push origin <BRANCH_NAME> --force
    

按需拉取(Clone)内容

在给某些大型仓库提 PR 时,往往 clone 就花了很长时间而且占据极大空间,但我们只是想要给它增加一个文件夹的内容而已,比如存放各种 @types/xxxDefinitelyTyped 和 Raycast 的插件仓库。这时候就可以使用 git 的 sparse-checkoutpartial clone 功能,步骤如下:

  1. clone 时加上 --filter=blob:none 用于不自动 clone 文件
$ git clone --filter=blob:none --no-checkout <REMOTE_URL>
  1. 进入项目,初始化 sparse-checkout
$ cd ./example
$ git sparse-checkou set --cone
  1. 切换到某个分支 以 master 为例
$ git checkout master
  1. 拉取指定的文件夹
$ git sparse-checkout set path/to