Git 从入门到精通

发布于:2025-02-11 ⋅ 阅读:(115) ⋅ 点赞:(0)

一、环境配置

下载地址:https://git-scm.com/downloads/

二、用户配置

找到git bash

git --version 查看当前版本

 git config --global user.name szhipeng625 设置用户名

 git config --global user.email szhipeng625@gmail.com 设置邮箱

git config --global --list 查看配置环境

git config --global credential.helper store 这段代码的作用是配置 Git 的全局凭据助手为 store 模式。这种模式会将你的 Git 凭据(如用户名和密码)以明文的形式存储在一个文件中,通常位于用户主目录下的 ~/.git-credentials 文件中。

当你配置了这个助手后,Git 在需要身份验证时会执行以下操作:

  1. 首次提交凭据时:Git 会询问你的用户名和密码,并将它们保存到 ~/.git-credentials 文件中。
  2. 后续操作时:Git 会直接从 ~/.git-credentials 中读取已保存的凭据,而无需再次询问用户名和密码。

三、创建仓库

创建仓库有两种方式。1.再本地创建一个仓库 git init 2.克隆一个远程仓库 git clone

1.mkdir learn-git 创建目录。

cd learn-git 进入文件并 git init 初始化本地仓库, cd .git 进入该文件下 ls -altr查看仓库的配置文件

含有.git就说明他是一个仓库

2. 拉取远程仓库 进入文件下点击git clong + 仓库即可

四、工作方式

git status 查看仓库当中文件的状态 

git reset 的作用

git reset 是 Git 中一个非常强大的命令,用于撤销更改或调整当前分支的状态。它可以在不同的场景下使用,比如修改提交记录、撤销文件的更改、或者调整 HEAD 指针的位置。


git reset 的基本语法

git reset [<mode>] [<commit>]

  • <mode>

    • --soft:仅移动 HEAD,保留暂存区和工作区的更改。
    • --mixed(默认):移动 HEAD,重置暂存区,但保留工作区的更改。
    • --hard:移动 HEAD,同时重置暂存区和工作区(所有更改都会丢失)。
  • <commit>:指定需要重置到的目标提交,可以是提交哈希值、分支名、HEAD 等。


git reset 的三种模式

git reset 会影响三个区域:

  • HEAD:当前分支的指针。
  • 暂存区(Stage/Index)
  • 工作区(Working Directory)
1. --soft 模式

仅移动 HEAD 指针到指定提交,暂存区和工作区的更改保持不变。

用途:用来修改最近一次的提交,但保留更改以便重新提交。

git reset --soft HEAD~1

  • 将 HEAD 指针回退到上一个提交。
  • 原来的提交内容会保持在暂存区,你可以重新提交或修改。

2. --mixed 模式(默认模式)

移动 HEAD 指针到指定提交,同时将暂存区的更改撤销,但工作区的更改保留。

用途:撤销提交并解暂存文件,方便重新编辑。

git reset HEAD~1

  • 将 HEAD 指针回退到上一个提交。
  • 暂存区的文件被撤销,但文件仍保留在工作区。

3. --hard 模式

移动 HEAD 指针到指定提交,同时清空暂存区和工作区的更改。

用途:彻底清除所有更改,恢复到某个提交的状态。

git reset --hard HEAD~1

  • 将 HEAD 指针回退到上一个提交。
  • 暂存区和工作区的内容都会被还原到指定提交的状态,无法恢复。

常用场景

1. 撤销最后一次提交但保留更改

git reset --soft HEAD~1

  • 用于将提交回滚到暂存区,但保留所有更改。
  • 适合发现提交错误后重新提交。
2. 撤销暂存的文件

bash

复制代码

git reset HEAD file.txt

  • 用于将 file.txt 从暂存区撤回到工作区,但不会影响文件内容。
3. 恢复到指定提交

git reset --hard <commit>

  • 用于将分支状态恢复到 <commit> 指定的提交,并清除所有暂存区和工作区的更改。
4. 清空最近的多个提交

git reset --hard HEAD~3

  • 删除最近的 3 个提交,并将状态恢复到之前的提交。

注意事项

  1. --hard 操作是不可逆的

    • 使用 --hard 后,所有未提交的更改会被丢弃,无法恢复。
    • 如果误操作,可以尝试通过 git reflog 恢复:

      git reflog git reset --hard <commit-hash>

  2. 不影响远程仓库

    • git reset 只会影响本地仓库的状态。
    • 如果远程仓库已经有提交记录,建议用 git revert 来撤销。

git resetgit checkoutgit revert 的区别

功能 git reset git checkout git revert
用途 修改历史提交、撤销更改 切换分支或恢复单个文件 生成一个新的提交,撤销旧的提交
是否影响历史 是(可以删除提交记录)
是否影响远程 否(除非强制推送) 否(会生成新提交记录)

通过 Git Bash 创建的文件夹会默认保存在 当前工作目录 下。当前工作目录的位置取决于你打开 Git Bash 时的起始路径或切换到的路径。


确定文件夹创建位置的方法

  1. 查看当前工作目录
    打开 Git Bash 后,输入以下命令查看当前工作目录:

    bash

    复制代码

    pwd

    这将返回当前所在的路径,例如:

    /c/Users/YourUsername

  2. 切换到不同目录后再创建
    如果你希望在特定路径下创建文件夹,可以先使用 cd 命令切换到目标路径:

    cd /c/Users/YourUsername/Documents mkdir myfolder

    这将在 Documents 文件夹中创建一个名为 myfolder 的文件夹。

  3. 检查默认起始路径
    默认情况下,Git Bash 打开时的起始路径通常是你的用户主目录:

    /c/Users/YourUsername

    你可以在这里找到通过 Git Bash 创建的文件夹。

  4. 更改默认起始路径

    如果你希望 Git Bash 打开时使用不同的默认路径,可以进行如下设置:

  5. 打开 Git Bash 的快捷方式。

  6. 右键点击,选择 属性
  7. 起始位置 (Start in) 一栏,输入你希望的默认路径,例如:

    C:\Users\YourUsername\Documents

五、VSCode使用Git 


网站公告

今日签到

点亮在社区的每一天
去签到