Skip to content

安装

访问 Git - Downloading Package (git-scm.com),下载 Windows 版本(需要根据自己的系统进行选择) 下载完成之后,以管理员身份运行 Git-2.42.0.2-64-bit.exe 文件,然后点击 Next 进行下一步; 勾选 Add a Git Bash Profile to Windows Terminal,然后一直点击 Next 下一步直至安装完成即可!

初次运行 Git 前的配置

一般在新的系统上,都需要先配置下自己的 Git 工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,你随时可以使用相同的命令修改已有的配置。

Git 提供了一个叫做 git config 的工具(实际是 git-config 命令,只不过可以通过 git 加一个名字来称呼此命令),专门用来配置读取相应的工作环境变量。而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  • /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件;
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件;
  • 当前项目的 git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量;

用户信息

第一个要配置的是你个人的用户名称邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:

bash
git config --global user. name "小让"
git config --global user. email [email protected]

如果使用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者电邮,只需去掉 --global 选项重新配置即可,新的设定就会保存在当前项目.git/config 文件里。

文本编辑器

Git 需要你输入一些额外消息的时候,会自动调用一个外部文本编辑器给你用。在安装 Git 时已经选择使用 Vim 作为默认的文本编辑器。

如果你有其他偏好,比如 Emacs 的话,可以重新设置:

bash
git config --global core. editor emacs

查看配置信息

要检查已有的配置信息,可以使用 git config --list 命令; 有时候会看到重复的变量名,那就说明它们来自不同的配置文件(比如 /etc/gitconfig~/.gitconfig),不过最终 Git 实际采用的是最后一个。 也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,如下所示:git config user.name

添加远程仓库

设置远程仓库地址

使用以下命令将本地仓库与远程仓库连接起来:

bash
git remote add origin <远程仓库地>
  • origin 是远程仓库的默认名称(可以更换成其他名称)。
  • <远程仓库地址> 是远程仓库的 URL,比如:
    • HTTPS 地址:https://github.com/username/repo.git
    • SSH 地址:[email protected]:username/repo.git

验证远程仓库连接

可以使用以下命令查看远程仓库的配置信息:

bash
git remote -v

输出类似以下内容:

origin  https://github.com/username/repo.git (fetch)
origin  https://github.com/username/repo.git (push)

拉取远程仓库内容

使用以下命令拉取远程仓库的内容:

bash
git pull origin main --allow-unrelated-histories
  • main 是远程仓库的主分支(根据实际分支名称替换)。
  • --allow-unrelated-histories 参数用于合并本地仓库与远程仓库两个独立的历史记录。

NOTE

在拉取远程仓库后,可能会产生冲突,如果你只想保留本地或远程仓库的内容,而忽略另一方的内容,可以直接强制同步:

  • 保留远程仓库内容(覆盖本地):

    bash
    git fetch origin
    git reset --hard origin/main
  • 保留本地仓库内容(覆盖远程):

    bash
    git push origin main --force

推送本地代码到远程仓库

将本地代码推送到远程仓库:

bash
git push origin main

其他

通过 SSH 连接到 GitHub

步骤如下所示:

  1. 打开 Git Bash 或者 Windows Terminal 终端;

  2. 粘贴以下文本(替换为本人的 Github 邮件地址);

    bash
      ssh-keygen -t ed25519 -C "[email protected]"

    当系统提示您"Enter a file in which to save the key(输入要保存密钥的文件)"时,可以按 Enter 键接受默认文件位置。

    NOTE

    如果以前创建了 SSH 密钥,则 ssh-keygen 可能会要求重写另一个密钥,在这种情况下,我们建议创建自定义命名的 SSH 密钥。为此,请键入默认文件位置,并将 id_ssh_keyname 替换为自定义密钥名称。

    bash
    Enter a file in which to save the key (/c/Users/YOU/. ssh/id_ALGORITHM):[Press enter]
  3. 在提示符下,键入安全密码;为了后续使用方便此处不设置密码,直接回车即可;

    bash
    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
  4. 将 SSH 密钥添加到 ssh-agent

    1. 使用 eval "$(ssh-agent -s)" 命令确保 ssh-agent 正在运行;
    2. 使用 ssh-add ~/.ssh/id_ed25519 命令将 SSH 私钥添加到 ssh-agent; 如果使用其他名称创建了密钥或要添加具有其他名称的现有密钥,请将命令中的 ided25519 替换为私钥文件的名称。
  5. 新增 SSH 密钥到 GitHub 帐户

    1. 使用 clip < ~/.ssh/id_ed25519.pub 命令将 SSH 公钥复制到剪贴板;如果您的 SSH 公钥文件与示例代码不同,请修改文件名以匹配您当前的设置。 在复制密钥时,请勿添加任何新行或空格!
    2. 在任何页面的右上角,单击个人资料照片,然后单击设置
    3. 在边栏的访问部分中,点击SSH 和 GPG 密钥 ➡️ 新建 SSH 密钥
    4. 填写标题(为新密钥添加描述性标签,例如,如果使用的是个人笔记本电脑,则可以将此密钥称为"个人笔记本电脑") ➡️ 粘贴公钥 ➡️ 添加 SSH 密钥
  6. 使用 ssh -T [email protected] 命令测试 SSH 连接 验证生成的消息中包含您的用户名。

至此,新增 SSH 密钥到 GitHub 帐户就圆满成功啦~

添加许可 LICENSE 到仓库

步骤如下所示:

  1. 导航到 Github 仓库主页;
  2. 点击 Github 仓库中的添加文件按钮 ➡️ 选择创建新文件
  3. 在文件名字段中,填写 LICENSE 或 LICENSE.md(全部大写) ;
  4. 在文件名下,点击选择许可证模板
  5. 在页面左边的 Add a license to your project添加许可到项目)下,检查可用的许可,然后从列表中选择许可 ➡️ 查看并提交;此处选择 MIT 开源协议,对于各个开源协议不懂的小伙伴可以参考如何选择开源协议这篇文章;
  6. 点击提交;

至此,添加许可 LICENSE 到仓库就成功啦~

问题 & 解决方案🚀

fatal detected dubious ownership in repository at 'xxx'

问题描述:

原因:由于 git 的新安全策略会导致使用 git 操作无所有权的仓库目录时报此错误,即当前 git 仓库的所有者与当前登陆用户不一致!

解决方案:更改当前 git 仓库文件夹的所有者!具体步骤如下所示:

  1. 鼠标右键文件夹➡️属性➡️安全➡️高级
  2. 更改所有者
  3. 选择用户或组➡️高级
  4. 立即查找➡️选择当前登陆用户为所有者
  5. 应用于当前文件夹下的子文件夹和文件
  6. 查看是否已解决