git

初始化设置

  1. 配置用户名

    git config --global user.name "用户名" 
    
    • --global 表示全局参数

    • --system 系统配置,对所有用户生效

  2. 配置邮箱

    git config --global user.email "xxx@qq.com" 
    
  3. 保存用户名和密码,不用每次都输入

    git config --global credential.helper store
    
    • 设置 Git 的凭据管理器(credential helper)为 store 模式,此模式下会保存 HTTP/HTTPS 请求时的用户名和密码。在首次进行需要身份验证的操作(如 git push 或 git pull)时,Git 会提示输入用户名和密码,并将这些凭据保存到 ~/.git-credentials 文件中,之后需要身份验证时,Git 会自动使用保存的凭据,而不再提示输入。

  4. 查看git配置的信息

    git config --global --list
    

注: 命令1,2只需配置一次就行

创建目录

git init # 在当前文件夹下创建目录(会生成一个.git隐藏目录)
git init my-repo # 在my-repo下创建仓库(会生成一个my-reop目录,并在my-repo下生成.git隐藏目录)

克隆仓库

git clone https://github.com/warmasy/autonote.git

git的工作区域和文件的状态

工作区域

git的本地数据管理分为3个区域,分别是工作区暂存区本地仓库

  • 工作区:.git所在的目录。

  • 暂存区:.git/index,用于保存即将提交到git仓库的修改内容。就相当于一个中间区域,用于临时存放即将提交的修改内容。

  • 本地仓库:.git/object,git存储代码和版本信息的主要位置。

当修改好工作区的文件之后,需要将他们添加到暂存区,然后再将暂存区的修改内容提交到本地仓库中。

文件的状态

git中的文件也存在几种状态,分别是未跟踪,未修改,已修改和已暂存

  • 未跟踪:我们创建的还没有被git管理的文件。

  • 未修改:我们已经被git管理起来,但是文件的内容没有发生变化,还没有被修改过

  • 已修改:我们已经修改过的文件,但是还没有添加到暂存区里面。

  • 已暂存:我们修改后并且已经添加到了暂存区内的文件

image-20250727150519117

添加和提交文件

  1. 查看仓库状态

    git status
    
  2. 将文件提交到暂存区

    git add file1.txt # 将file1.txt添加到暂存区
    
    git add . # 将当前目录所有文件添加到暂存区
    
    git -rm --cached <file> # 取消暂存某文件
    
  3. 提交到仓库中

    只会提交暂存区中的文件到仓库中

    git commit -m "提交说明"
    
  4. 查看提交记录

    git log
    
  5. 撤销之前修改的一些内容,或者回退到之前的某一个版本,并且保存工作区和暂存区的修改内容

    git reset
    
    git reset --soft
    git reset --hard
    git reset --mixed
    
    • soft:回退到之前的某一个版本,并且保存工作区和暂存区的修改内容

    • hard:表示回退到某一个版本,并且丢弃工作区和暂存区的所有修改内容

    • mixed:介于soft和hard这两个参数之间,它表示回退到某一个版本,并且只保存工作区的修改内容而丢弃暂存区的修改内容

  6. .将文件同时从工作区和暂存区删掉

    git rm file1.txt
    git rm --catch file1.txt # 把文件从暂存区删除,但保留在当前工作区中。
    

    删除之后提交一下,保存到版本库中

.gitignore文件

.gitignore文件的作用是可以让我们忽略掉一些不应该被加入到版本库中的文件

应该忽略那些文件?

  1. 系统或者软件自动生成的文件

  2. 编译产生的中间文件和结果文件

  3. 运行时生成的日志文件、缓存文件、临时文件

  4. 涉及身份、密码、口令、密钥等敏感信息文件

一个.gitignore文件示例

*.log # 忽略所有以log结尾的文件
temp/ # 忽略temp文件夹,注意:文件夹的格式是以斜线结尾的,这样才能正确的忽略文件夹。

注意:在版本库中的文件不会被忽略,

.gitignore文件的匹配规则:

1.从上到下逐行匹配,每一行表示一个忽略模式

2.空行或者以#开头的行会被git忽略。一般空行用于可读性的分割,#一般用作注释

3.使用标准的Blob模式匹配,例如:*:统配任意个字符,?:比配单个字符,**:匹配任意的中间目录

远程仓库推送与拉取

把本地仓库和别名为origin的远程仓库关联起来

git push -u origin main

git pull

git pull(拉取):把远程仓库的修改拉取到本地仓库

git pull

git push

git push(推送):把本地仓库的修改推送给远程仓库

git push

常用基本操作

  1. 克隆项目

    git clone
    
  2. 查看当前仓库所对应的远程仓库的别名和地址

    git remote -v
    
  3. 把本地仓库和别名为origin的远程仓库关联起来

    git push -u origin main
    
  4. 将文件添加到暂存区,等待后续的提交操作

    git add <文件名>
    
  5. 将当前文件夹下的文件全部添加到暂存区里面

    git add . 
    
  6. 提交文件到本地仓库(只会提交暂存区中的文件,不会提交工作区的其他文件)

    git commit -m "提交信息"
    
  7. 把暂存区的文件提交到远程仓库

    git push
    
  8. git pull(拉取):把远程仓库的修改拉取到本地仓库

    git pull