跳到主要内容

3 篇博文 含有标签「git」

查看所有标签

· 阅读需 2 分钟
wen

Clone a Specific Folder from a Git Repository

You can use sparse checkout in Git to download only a specific folder from a repository. Here's how:

Steps

  1. Create a Folder and Navigate to It:

    mkdir <folder-name>
    cd <folder-name>
  2. Initialize Git:

    git init
  3. Add the Repository URL:

    git remote add origin <repo-url>
  4. Enable Sparse Checkout:

    git sparse-checkout init
  5. Select the Folder to Clone:

    git sparse-checkout set <folder-path>

    Replace <folder-path> with the folder you want (e.g., docs).

  6. Download the Folder:

    git pull origin <branch>

    Replace <branch> with the branch name (e.g., main).

Example

To download only the docs folder:

mkdir my-repo
cd my-repo
git init
git remote add origin https://github.com/example/repo.git
git sparse-checkout init
git sparse-checkout set docs
git pull origin main

Key Points

  • Git Version: Sparse checkout requires Git 2.25 or later.
  • Multiple Folders: Add multiple folders by separating them with spaces:
git sparse-checkout set folder1 folder2
  • Disable Sparse Checkout: If you want to clone the whole repo later:
git sparse-checkout disable

This method saves time and space by downloading only the files you need!

· 阅读需 1 分钟
wen

问题

当你在同一台电脑上使用多个 Git 用户的时候,你可能会遇到在 commit push 之后才发现自己没有切换到正确的用户的问题。

为了避免这种情况,我们可以在终端显示当前的 Git 用户信息。

img

解决方案

终端的显示信息(Shell Prompt) ,我推荐 Starship 配置来实现。

安装 Starship 可以参考官方文档, 这里就不再赘述。

配置

安装完后在 Starship 的配置文件 ~/.config/starship.toml 中添加以下配置, 格式可以按照自己的喜好修改 format = 部分 。

~/.config/starship.toml
format = """
...
${custom.git_username}\
...

[custom.git_username]
command = "git config user.name"
when = "[ -d .git ] && echo .git || git rev-parse --git-dir > /dev/null 2>&1"
format = ' [$symbol($output)@git]($style) '

· 阅读需 2 分钟
wen

git commit --amend --no-edit

当你觉得你已经把某个 issue 修改好了,可实际上你没能一次性修改好(也许只是有些 typo);

OR

当你确实已经把某个 issue 修改好了,可你忘记了 add 一些文件时,

你可以这么做:

git add .
git commit --amend --no-edit # --no-edit 选项表示不修改 commit message。
git push -f # 如果你已经 push 过了,需要添加 -f 来强制 push。
备注

其实我就是为了体验下 mermaidjs 的 gitGraph 功能而写的这篇文章 😄。

BTW, gitGraph 的 commit message 默认是 rotated 的。

如果你想要更改成水平的,需要在 docusaurus.config.js 中添加如下配置:

+      mermaid: {
+ options: {
+ gitGraph: { rotateCommitLabel: false },
+ },
+ },