git指南及知识点

本文详细介绍了Git的版本进退、工作区与版本库的关系、撤销操作、分支管理和远程操作。通过HEAD指针理解版本历史,学习如何在工作区与暂存区之间穿梭,以及如何撤销add和commit操作。同时,文章涵盖了分支的创建、切换、合并及删除,远程库的关联、克隆、推送与拉取,以及Git配置和别名设置。
摘要由CSDN通过智能技术生成

一、版本进退

每commit一次就产生一个版本(一个“存档”)

HEAD 表示当前版本

HEAD^ 表示上个版本

HEAD^^ 表示上上个版本

HEAD^^^ 表示上上上个版本

HEAD~100 表示上一百个版本

HEAD相当于一个指针,指向当前版本

  1. git log 来列出目前版本(也就是HEAD指向的版本)以及之前的版本。

  2. 从现在穿梭回过去:

# 回到之前 commit id 以 “xxx” 开头的版本
$ git reset --hard xxx

这个操作实际上是改变HEAD指针的指向,并没有丢失当前的几个版本

此时用 git log 显示出来的是回退到的那个版本以及那个版本之前的版本

  1. 从过去穿梭回到现在:

如果后悔,想要去到最新的几个版本,但又无法用 git log 找到他们的 commit id,那么:

git reflog 可以帮你找到

二、工作区和版本库

2.1 工作区 Working Directory

工作区就是当前文件夹里的源文件源代码们

2.2 版本库 Repository

版本库是当前文件夹里的 .git 文件夹,它包含着项目的版本

版本库包含:

  1. 暂存区(stage):

    • # 将工作区(working directory)的文件xxx的修改,添加到暂存区(stage)
      $ git add xxx
      
  2. master 分支:

    • HEAD指向这个master分支

    • # 将暂存区(stage)的文件提交到当前HEAD分支
      $ git commit -m "xxx"
      

2.3 工作区和版本库穿梭

git add:工作区 (working directory) --> 暂存区 (stage)

git commit:stage --> HEAD 分支

git diff:用来比较工作区和暂存区一个文件的差异

2.3.1 撤销本地修改

撤销本地修改,等同于:重回暂存区 (stage),撤销工作区 (working directory)

# 丢弃在工作区的xxx文件的改变
$ git checkout -- <file>

# 把 README.txt 在工作区 (working directory) 的修改全部撤销
$ git checkout -- README.md

git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。

git reset --hard HASH #返回到某个节点,不保留修改,已有的改动会丢失。
git reset --soft HASH #返回到某个节点, 保留修改,已有的改动会保留,在未提交中,git status或git diff可看。

git clean -df #返回到某个节点,(未跟踪文件的删除)
git clean 参数
    -n 不实际删除,只是进行演练,展示将要进行的操作,有哪些文件将要被删除。(可先使用该命令参数,然后再决定是否执行)
    -f 删除文件
    -i 显示将要删除的文件
    -d 递归删除目录及文件(未跟踪的)
    -q 仅显示错误,成功删除的文件不显示

注:
git reset 删除的是已跟踪的文件,将已commit的回退。
git clean 删除的是未跟踪的文件
  • 情况一: README.txt 已经在暂存区(stage),但是在工作区(working directory)又被修改。
    • t = 0:git add README.txt
    • t = 1:修改 README.txt
    • 使用 git checkout -- README.md 可以让 README.md 变成 t = 0 的样子
  • 情况二:README.txt 还没有被添加到版本库(stage或master分支)。
    • 使用 git checkout -- README.md 会让README.md 变成当前版本库的样子

2.3.2 撤销 add 操作

撤销add,等同于:重回工作区 (working directory) ,撤销暂存区 (stage)```

$ git reset HEAD xxx

# 将已经在暂存区的README.md撤销,换句话说,把已经 git add 的文件撤销
$ git reset HEAD README.md

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值