Git 安装、配置

一、安装 Git

1. 安装 Git

(1) Windows:

https://git-scm.com/downloads/win

(2) Linux:
复制代码
sudo dnf update -y         # 更新软件包

sudo dnf install git       # 安装 git

git --version

git config --global user.name "your_name"                 # 设置账号
git config --global user.email "your_email@example.com"   # 设置邮箱

git config --list

git clone https://gitee.com/账号/abc.git      # 下载项目




#######  升级 Git #######

sudo dnf install dh-autoreconf curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel -y

wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz

tar -zxf git-2.9.5.tar.gz

cd git-2.9.5

sudo dnf install autoconf                     # 安装生成自动配置脚本工具 (if you need)

make configure

sudo yum install perl-ExtUtils-MakeMaker      # 安装 MakeMaker (if you need)

./configure --prefix=/opt/git

make all

sudo make install install-doc install-html install-info

2. 查看 git 配置

复制代码
git config --list

1. diff.astextplain.textconv=astextplain:

指定了在比较非文本文件时使用的文本转换工具。astextplain 是一个工具,用于将二进制文件转换为文本格式,以便在差异比较中显示。

2. filter.lfs.clean=git-lfs clean -- %f:

这行配置与 Git LFS(Large File Storage)相关。filter.lfs.clean 指定了在将文件添加到 Git 仓库之前使用的清理过滤器。git-lfs clean 是 Git LFS 提供的命令,用于处理大文件。

3. filter.lfs.smudge=git-lfs smudge -- %f:

这行配置也是与 Git LFS 相关的。filter.lfs.smudge 指定了在检出文件时使用的过滤器。git-lfs smudge 是 Git LFS 提供的命令,用于处理大文件。

4. filter.lfs.process=git-lfs filter-process:

指定了 Git LFS 的过滤器处理命令。git-lfs filter-process 是 Git LFS 提供的命令,用于处理大文件的过滤。

5. filter.lfs.required=true:

表示 Git LFS 过滤器是必需的。如果设置为 true,Git 会要求使用 Git LFS 来处理大文件。

6. http.sslbackend=openssl:

指定了 Git 使用的 SSL 后端库。openssl 是一个广泛使用的 SSL/TLS 库。

7. http.sslcainfo=D:/dev/Tools/Git/mingw64/etc/ssl/certs/ca-bundle.crt:

指定了 Git 使用的 CA 证书文件的路径。CA 证书用于验证 SSL/TLS 连接的安全性。

8. core.autocrlf=true:

这行配置控制了 Git 如何处理换行符。true 表示在提交时将换行符转换为 LF(Unix 风格),在检出时转换为 CRLF(Windows 风格)。

9. core.fscache=true:

启用了文件系统缓存,以提高 Git 操作的性能。

10. core.symlinks=false:

禁用了符号链接的支持。如果设置为 false,Git 将不会创建或跟踪符号链接。

11. core.fsmonitor=true:

启用了文件系统监视器,以提高 Git 操作的性能,特别是在大型仓库中。

12. pull.rebase=false:

指定了在执行 git pull 时的默认行为。false 表示使用合并(merge)而不是变基(rebase)

13. credential.helper=manager:

指定了Git使用的凭据助手。manager是Windows提供的凭据管理器,用于存储和检索Git凭据

14. credential.https://dev.azure.com.usehttppath=true:

指定了在使用 HTTPS 连接到 dev.azure.com 时,是否使用 HTTP 路径作为凭据的一部分。true 表示使用。

15. init.defaultbranch=master:

指定了在初始化新仓库时默认创建的分支名称。master 是传统的默认分支名称。

16. user.name=abcd:

指定了 Git 提交时使用的用户名。

7. user.email=abcd@example.com:

指定了 Git 提交时使用的电子邮件地址。

18. credential.https://gitee.com.provider=generic:

指定了在使用 HTTPS 连接到 gitee.com 时使用的凭据提供程序。generic 表示使用通用的凭据提供程序。

3. 设置 git 默认编辑器

复制代码
git config --global core.editor "code --wait"     # 设置为 VS Code 为默认编辑器
  • code 是 VSCode 的命令行工具。
  • --wait 参数会让 Git 等待 VSCode 关闭后再继续操作。

二、创建 git 仓库:

1. 获取 Git 仓库

  1. 将尚未进行版本控制的本地目录转换为 Git 仓库;

  2. 从其它服务器 克隆 一个已存在的 Git 仓库。

两种方式都会在你的本地机器上得到一个工作就绪的 Git 仓库。

复制代码
cd /home/user/my_project       # 在 Linux 上
cd /Users/user/my_project      # 在 macOS 上
cd /c/user/my_project          # 在 Windows 上


git init                                      # 初始化

git add *.c                                   # 1
git add LICENSE                               # 2
git commit -m 'initial project version'       # 3

git config --global init.defaultBranch abc    # 设置全局默认分支 abc

git init 将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。 但这仅仅是做了一个初始化的操作,项目里的文件还没有被跟踪。 (参见 Git 内部原理 来了解更多关于到底 .git 文件夹中包含了哪些文件的信息。)

如果在一个已存在文件的文件夹(而非空文件夹)中进行版本控制,应该开始追踪这些文件并进行初始提交。 可以通过 git add 命令来指定所需的文件来进行追踪,然后执行git commit:
1. git add *.c

作用:将当前目录下所有扩展名为 .c 的文件添加到 Git 的暂存区(Staging Area)。

解读:*.c 是一个通配符,表示匹配所有以 .c 结尾的文件。

这条命令会将所有 C 语言源文件(如 main.c、utils.c 等)添加到暂存区,准备提交。

2. git add LICENSE

作用:将名为 LICENSE 的文件添加到 Git 的暂存区。

解读:LICENSE 文件通常用于声明项目的许可证信息。

这条命令将 LICENSE 文件单独添加到暂存区。

3. git commit -m 'initial project version'

作用:将暂存区中的所有文件提交到本地仓库,并附上提交信息。

解读:

commit 是 Git 的提交命令,用于将暂存区的内容保存到本地仓库。

-m 'initial project version' 是提交信息(Commit Message),用于描述本次提交的内容。

-m 表示直接在命令行中指定提交信息。

'initial project version' 是提交信息的文本,通常用于描述本次提交的目的或内容。

这条命令会将之前通过 git add 添加到暂存区的文件(如 *.c 和 LICENSE)提交到本地仓库

2. 克隆项目

复制代码
git clone <url>

git clone https://gitee.com/abc/steak.git

git config --global init.defaultBranch main  # 设置全局默认分支 main

git branch -m main                           # 已经初始化了仓库,想将master分支重命名为main

删除 Git

复制代码
sudo dnf remove git                           # 删除 Git

sudo rm ~/.gitconfig                          # 删除用户目录下的 .gitconfig

sudo rm /etc/gitconfig                        # 删除 Git 的全局配置文件(如果有)

rm -rf .git/                                  # 删除 .git/ 目录   

Git 全局设置:

复制代码
git config --global user.name "abc"
git config --global user.email "123@abc.com"

创建 git 仓库:

复制代码
mkdir news
cd news
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/gitee的账号/news.git
git push -u origin "master"
  1. mkdir news

    • 创建一个名为 "news" 的新目录
  2. cd news

    • 进入刚创建的 "news" 目录
  3. git init

    • 初始化一个新的 Git 仓库,会在当前目录创建一个隐藏的 .git 目录,用于存储版本控制信息
  4. touch README.md

    • 创建一个名为 README.md 的空文件(项目说明文件)
  5. git add README.md

    • README.md 文件添加到 Git 的暂存区(准备提交)
  6. git commit -m "first commit"

    • 提交暂存区的更改到本地仓库,并添加提交信息 "first commit"
  7. git remote add origin https://gitee.com/gitee的账号/news.git

    • 添加一个名为 "origin" 的远程仓库,地址指向 Gitee 上的仓库

    • 注意:需要将 "gitee的账号" 替换为实际的 Gitee 用户名

  8. git push -u origin "master"

    • 将本地 master 分支的提交推送到远程 origin 仓库

    • -u 参数设置上游跟踪关系,这样以后可以直接使用 git push 而不需要指定远程和分支


关联远程仓库

复制代码
git remote add News https://gitee.com/jpmedia/news.git

检查远程仓库是否设置成功:

复制代码
git remote -v
拉取远程代码(如果远程已有内容)
复制代码
git pull News master
提交本地代码并推送
复制代码
git add .                              // 添加文件到暂存区

git commit -m "Initial commit"         // 提交更改

git push -u News master                // 推送到远程

可能遇到的问题

如果 git pull 报错

  • 错误:fatal: refusing to merge unrelated histories

    说明本地和远程仓库历史不相关(比如远程仓库已有 README.md 等文件)。
    解决方法(强制合并):

    git pull News master --allow-unrelated-histories

然后手动解决冲突(如果有),再 git add . + git commit + git push


总结

  • 没有 .git 文件夹git init 初始化仓库。

  • 关联远程仓库git remote add News <URL>

  • 拉取远程代码git pull News master(可能需要 --allow-unrelated-histories)。

  • 提交并推送git add .git commitgit push -u News master

突(如果有),再 git add . + git commit + git push

相关推荐
CoderJia程序员甲5 小时前
GitHub 热榜项目 - 日榜(2026-01-24)
git·ai·开源·llm·github
莫问前路漫漫6 小时前
Electerm 连接远程服务器完整指南
运维·服务器·git
鸣弦artha6 小时前
TabBar标签页组件详解
linux·git·ubuntu
小林up10 小时前
Ubuntu访问不了Git解决办法
linux·git·ubuntu
月初,1 天前
Git 常用操作大全(超详细教程)一文教会你完全使用Git
大数据·git·elasticsearch
李少兄1 天前
Git 忽略文件机制:.gitignore 与 .git/info/exclude
java·git·elasticsearch
github.com/starRTC1 天前
Claude Code中英文系列教程17:将Claude Code集成在GitLab工作流里面
git·gitlab·github
CCC:CarCrazeCurator1 天前
git merge与rebase的区别及实操心得体会
git
草莓熊Lotso1 天前
Qt 控件美化与交互进阶:透明度、光标、字体与 QSS 实战
android·java·开发语言·c++·人工智能·git·qt