一、安装 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 仓库
将尚未进行版本控制的本地目录转换为 Git 仓库;
从其它服务器 克隆 一个已存在的 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"
mkdir news
- 创建一个名为 "news" 的新目录
cd news
- 进入刚创建的 "news" 目录
git init
- 初始化一个新的 Git 仓库,会在当前目录创建一个隐藏的 .git 目录,用于存储版本控制信息
touch README.md
- 创建一个名为 README.md 的空文件(项目说明文件)
git add README.md
- 将 README.md 文件添加到 Git 的暂存区(准备提交)
git commit -m "first commit"
- 提交暂存区的更改到本地仓库,并添加提交信息 "first commit"
git remote add origin https://gitee.com/gitee的账号/news.git
添加一个名为 "origin" 的远程仓库,地址指向 Gitee 上的仓库
注意:需要将 "gitee的账号" 替换为实际的 Gitee 用户名
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 commit→git push -u News master。
突(如果有),再 git add . + git commit + git push。