Git配置
- 在Git安装完成后,windows操作系统上会多出一个
Git Bash
的软件,如果是linux或者是macOS,那么直接打开终端,在终端中敲击命令即可
shell
# 检查git版本
git -v
# 或
git --version
- 在使用git时,需要配置一下用户名和邮箱
shell
# 用户名
git config --global user.name "your name"
# 邮箱
git config --global user.email "your email"
# 省略(Local):本地配置,只对本地仓库有效
# --global:全局配置,所有仓库生效,最多使用
# --system:系统配置,对所有用户生效,一般不使用
- 以上命令只需要执行一次即可,执行以下命令可以用于保存用户名和密码,执行该命令的主要目的是由于使用http时,会出现一个弹窗要求输入用户名和密码,只需要在第一次clone输入用户名和密码,这些信息就被存储起来,以后就可以自动读取,不需要你在手动输入了。
- 如果是配置了ssh密钥,那么就可以不用执行这个命令
shell
git config --global credential.helper store
- 查看git的配置信息
shell
git config --global --list
Git初始化
-
创建仓库两种方式
- 在文件夹下执行
git init
命令 - 执行
git clone
命令从远程服务器上clone一个已经存在的仓库
- 在文件夹下执行
-
如果使用
git init
命令初始化一个仓库,是初始化当前所在目录,如果是执行了git init xxx
这样的话,是会在当前目录下创建一个xxx目录,并且初始化为一个git仓库
可以看到在执行完成git init后,该目录后面多了一个master
标识

- 出现上面黄色字体的部份,是因为这是Git 2.28 版本之后的新特性。这个提示是在你第一次使用 Git 初始化一个仓库时出现的,它告诉你默认的主分支名称从
master
可能会更改为其他名称(例如main
、trunk
或development
)。
为了防止出现这个警告,你可以通过在命令行中输入以下命令来配置 Git 初始化默认分支名称,个人一般习惯使用master
shell
git config --global init.defaultBranch <name>
执行命令后再次执行git init
命令就不会再出现上方黄色字体部份了

如果已经创建一个仓库,但是想要更改主分支名称,则可以使用以下命令
shell
# <name>是你想要更改后的主分支名称
git branch -m <name>

如何才能确定当前文件夹是一个git仓库
除了会在终端命令行后面显示一个master标识外,最重要的就是当前仓库下有一个.git
的目录,这个目录一定不能删除,因为一旦删除后,这个目录就不再是一个仓库,也无法查看历史文件了

工作区、暂存区、本地仓库
-
工作区(Working Directory)
- 本地计算机上的项目目录,在这个目录下创建、修改和删除操作。工作区包含了当前项目的所有文件和子目录
-
暂存区(Staging Area/Index)
- 暂存区是一个临时存储的区域,它包含了即将被提交到版本库中的文件快照,在提交之前,可以选择性的将工作区中的修改添加到暂存区中
-
本地仓库(Local Repository)
- 本地仓库包含了所有的版本历史记录,每一次提交都会在版本库中创建一个新的快照,这些快照是不可更改,具有唯一ID,确保了项目的完整历史记录

三者之间的关系
- 工作区-->暂存区
- 使用
git add
命令将工作区中的修改添加到暂存区中
- 使用
shell
git add filename
# 如果将filename替换成 . 表示将当前目录下的所有变更的文件全部提交到暂存区中
- 暂存区-->本地仓库
- 使用
git commit
命令将暂存区中的修改提交到版本库 - 注:该操作不会提交工作区中的文件,只会提交暂存区中的文件
- 使用
shell
git commit -m 'current commit message'
- 本地仓库-->远程仓库
- 使用
git push
命令将本地仓库的提交推送到远程仓库
- 使用
shell
git push origin branch-name
- 远程仓库-->本地仓库
- 使用
git pull
或git fetch
命令从远程仓库获取更新
- 使用
shell
git pull origin branch-name
# 或
git fetch origin branch-name
git merge origin/branch-name
-
文件状态
-
未跟踪(Untarck):新创建的文件
-
未修改(Unmodified):已经被git管理的文件
-
已修改(Modified):已经被修改,但是还没有被添加到暂存区的文件
-
已暂存(Staged):已经修改,并且已经添加到暂存区的文件
-