Git 的使用

1. Git 版本迭代

1. 查看 Git 版本

1
git --version   # 查看当前安装的 Git 版本号

2. Windows 系统更新 Git

  1. 访问 Git for Windows,下载最新版安装程序。
  2. 运行安装程序并覆盖安装。
  3. 安装完成后,再次执行 git --version 验证。

2. Git 仓库的基本使用

1. 新建仓库

  1. 登录 GitHub 或 Gitee,新建仓库,填写仓库名、介绍等信息。
  2. 可选择开源或私有,是否初始化 README、License、.gitignore 等,按需配置。

2. 初始化 Git 仓库(本地仓库)

1
git init   # 在本地初始化一个空仓库(会生成隐藏的 .git 文件夹)

3. 关联远程仓库

添加 GitHub 或者 Gitee 仓库作为远程地址(默认命名为 origin):

1
2
git remote add origin 仓库链接   # 建议使用 HTTPS 链接
git remote -v # 查看远程仓库信息,验证是否添加成功

4. 添加文件到暂存区

你必须将 要提交的文件 或者 修改后的文件 添加到暂存区,Git 才会记录这些改动。可以通过以下命令进行:

  • 添加单个文件:

    1
    2
    git add 文件名称
    # 例如:git add helloWord.cpp
  • 添加多个文件(空格分隔):

    1
    2
    git add <file1> <file2> <file3>
    # 例如:git add file1.txt file2.txt
  • 添加所有文件:

    1
    git add .		# 使用 . 可以一次性将所有已修改的文件添加到暂存区。
  • 提交某个目录下的所有文件:

    1
    git add subfolder/			# subfolder 是子文件夹

5. 提交更改

提交暂存区的改动,并为这次提交写一条描述信息。每次提交都会生成一个唯一的提交 ID(hash),并记录下本次提交的描述信息。

1
git commit -m "你本次提交的说明信息"

6. 推送到远程仓库

推送代码到远程分支(如 mainmaster):

1
git push -u origin main            # 首次推送需加 -u

后续推送只需:

1
git push

3. 不同场景下的 Git 提交命令

场景 命令示例
提交并推送 git add .git commit -m "xxx"git push
新分支开发 git checkout -b feature/newgit add .git commit -m "xxx"git push origin feature/new
撤销暂存区文件 git reset 文件名
撤销最近一次提交 git reset --soft HEAD^
撤销已推送的提交 git revert <commit_id>
强制推送(慎用) git push origin 分支名 --force

4. .git 目录清理与性能优化指南

1. .git 目录的结构与作用

1
2
3
4
5
6
7
核心文件/目录:
├── objects/ # 存储所有 Git 对象(提交、文件快照等)
├── refs/ # 存储分支、标签指针
├── HEAD # 当前分支指向
├── config # 仓库专属配置
├── index # 暂存区信息
└── hooks/ # Git 操作触发的脚本

2. 常用清理命令

命令 作用 风险
git gc --prune=now 清理松散对象
git repack -ad 重新打包,减少碎片
git clean -dfx 删除未跟踪文件/目录 慎用

5. 绿点计算规则

  • 统计依据:提交次数而非提交文件数。

  • 有效条件

    • 绑定的邮箱需与账号一致。
    • 提交需合并到默认分支(如 main)。
  • 导入仓库不算贡献,除非产生新提交。


为何一次提交多个文件只算 1 个绿点?

提交次数决定绿点:无论一次提交包含多少文件修改,均视为 1 次提交。例如:

  • 修改 10 个文件后执行 git commit -m "update" → 计为 1 次贡献。
  • 分 3 次提交(每次修改不同文件)→ 计为 3 次贡献。

导入仓库是否算绿点?

  • GitHub/Gitee 导入功能:直接通过平台的「导入仓库」功能迁移代码(如 GitHub 导入到 Gitee),不会生成绿点,因为无新提交记录。
  • 手动克隆后提交:若导入后手动提交新代码(如修复冲突或更新内容),会计入绿点

6. 选择合适的许可证

首先,你需要确定适合你项目的许可证类型。GitHub 提供了一个 许可证选择器,可以帮助你根据项目的需求和目标选择合适的许可证。常见的许可证包括 MIT、Apache 2.0、GPL 等。

1. 添加许可证文件

方法一:使用 GitHub 网页界面

  1. 访问仓库:在 GitHub 上打开你的仓库页面。
  2. 创建新文件:点击页面上的 “Add file” 按钮,然后选择 “Create new file”。
  3. 命名许可证文件:在文件名输入框中,输入 LICENSE.md
  4. 选择许可证模板:在文件编辑区域,GitHub 会提示你选择一个许可证模板。点击 “Choose a license template” 链接,然后从可用的许可证列表中选择你之前确定的许可证类型。
  5. 提交许可证文件:选择许可证后,GitHub 会自动填充许可证内容。你可以根据需要进行任何修改,然后滚动到页面底部,填写提交信息(如 “Add MIT License”),并点击 “Commit new file” 按钮提交许可证文件。

方法二:使用本地 Git 命令行

  1. 克隆仓库:如果你还没有在本地克隆仓库,请先执行以下命令:

    1
    git clone 仓库链接
  2. 创建许可证文件:在本地仓库的根目录下,创建一个名为 LICENSE.md 的文件。

  3. 编辑许可证内容:使用文本编辑器打开许可证文件,并将你选择的许可证文本粘贴进去。你可以从 许可证选择器 网站复制许可证文本。

  4. 提交并推送:使用 Git 提交许可证文件,并将其推送到 GitHub 仓库。

    1
    2
    3
    git add LICENSE.md
    git commit -m "Add MIT License"
    git push origin main

2. 验证许可证添加成功

添加许可证文件后,你可以在仓库页面的 “Code” 选项卡下看到新的 LICENSE 文件。此外,GitHub 会在仓库页面的右上角显示许可证类型,并提供一个链接,方便访问者查看完整的许可证内容。

3. 示例:添加 MIT 许可证

以下是 MIT 许可证的示例内容,你可以将其复制到你的 LICENSE 文件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
MIT License

Copyright (c) [year] [fullname]

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

请将 [year][fullname] 替换为实际的年份和你的全名。

通过以上步骤,你可以为你的 GitHub 仓库添加适当的许可证,明确项目的法律条款和使用条件。这对于开源项目尤其重要,可以促进项目的共享、协作和可持续发展。