Git基本概念及命令

一.工作区

在这里插入图片描述

1.位置:

包含项目的实际文件,对应项目文件夹

2.相关操作:

  • 创建版本控制仓库,生成.git文件夹,跟踪管理仓库:git init
  • 将修改保存到本地仓库中的暂存区index:git add
  • 将未提交的更改保存到stash中,保持当前工作目录干净:git stash [save “message”]
  • 查看stash列表:git stash list
  • 恢复stash中的记录:git stash apply 应用更改但不删除 stash;git stash pop 应用更改的同时删除 stash
  • 删除最新的stash:git stash drop

二.本地仓库

1.位置:

项目文件夹根目录下隐藏的.git文件夹

2.重要文件/文件夹

  • index: 暂存区, git commit 后将内容提交到本地仓库。
  • HEAD: 默认指向 master 分⽀的⼀个指针。
  • refs/heads/master: ⽂件⾥保存当前 master 分⽀的最新 commit id 。
  • objects: 包含了创建的各种版本库对象及内容,存放 git 维护的所有修改。

三.远程仓库

1.相关操作:

  • 本地创建远程仓库的拷贝:git clone <remote_url>
  • 本地获取远程仓库数据:git fetch;git fetch <remote_name>
    <source_branch>[:<destination_branch>] *不指定即为更新到对应跟踪分支
  • 本地获取远程仓库数据并合并:git pull;git pull <remote_name>
    <source_branch>[:<destination_branch>] *不指定即为合并到当前分支
  • 本地获取远程仓库数据并将工作复制到远程分支最新记录:git pull --rebase;git pull --rebase
    <remote_name> <source_branch>[:<destination_branch>] *不指定即为复制到当前分支
  • 上传数据并合并到远程仓库:git push;git push <remote_name>
    <source_branch>[:<destination_branch>] *不指定即为合并到对应跟踪分支

四.提交

1.定义:

一个特定的代码状态,记录项目的发展历史,包含了更改的文件和内容,以及提交的作者和时间等信息。

2.相关操作

  • 提交:git commit [-m “commit message”]
  • 查看commit历史:git log
  • 查看commit信息:git show <commit_hash>
  • 切换到标签对应commit:git checkout <tag_name>
  • 撤销commit:git reset <target_commit>*适用于本地,会重写项目历史;git revert
    <recall_commit> *适用于远程,重新提交未变更的记录

git reset --soft <target_commit> 将 HEAD 移动到目标提交,但不更改暂存区和工作目录的内容
git reset --mixed <target_commit> 将 HEAD 移动到目标提交,同时将暂存区的内容撤销到指定提交,但保留工作目录的更改
git reset --hard <target_commit> 将 HEAD 移动到目标提交,并且彻底清除暂存区和工作目录中的更改,将它们恢复到目标提交时的状态

  • 应用commit到当前分支:git cherry-pick <commit_hash1> <commit_hash2>
    <commit_hash3>

五.分支

1.定义:

指向特定提交的引用,包含了该提交及其所有父提交的快照。

2.主分支(Master/Main):

主要分支,通常是稳定和可发布的代码

3.相关操作:

  • 创建分支:git branch <new_branch>

  • 查看分支:git branch *本地;git branch -r *远程

  • 切换分支:git checkout <branch_name>;git switch <branch_name>(Git 2.23后)

  • 创建并切换到分支:git checkout -b <new_branch> [<start_branch>]

    *可选是否基于某分支/跟踪某远程分支;
    git switch -c <new_branch> [<start_branch>](Git 2.23后)

  • 合并当前分支到另一分支:git merge <target_branch>

  • 复制分支到另一分支:git rebase <target_branch> [<move_branch>] *不指定即为当前分支

  • 删除分支:git branch -d <branch_name> *已被合并分支,安全;git branch -D <branch_name>
    *未被合并分支,强制

4.优势:

  • 并行开发:允许开发者同时处理多个任务,不会互相干扰。
  • 快速切换:使开发者能够灵活地切换到不同的工作上下文。
  • 版本历史清晰:每个分支都有自己的提交历史,合并时也会保留信息。

六.标签

1.定义:

指向某个特定提交的不可变的引用,通常用于标识版本发布或其他重要的里程碑。

2.相关操作:

  • 创建轻量标签:git tag <new_tag>
  • 创建附注标签:git tag -a <new_tag> -m “Tag message”
  • 列出标签:git tag (所有);git tag -l “v1.*” (可使用通配符指定特定)
  • 查看标签信息:git show <tag_name>
  • 删除标签:git tag -d <tag_name> *本地;git push origin --delete <tag_name>
    *远程
  • 上传标签:git push origin <tag_name> *指定;git push --tags *所有
  • 13
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值