基础学习之——git 的使用方式

git 是一种分布式版本控制系统(Distributed Version Control System, DVCS),用于有效地管理代码和文件的变更历史。它最初由林纳斯·托瓦兹(Linus Torvalds)于2005年为管理Linux内核开发而设计,并很快因其效率和灵活性而流行开来,成为许多软件开发团队的首选版本控制工具。

git 的主要特点包括:

  • 分布式:Git 是分布式的,这意味着每个开发者都可以在自己的本地机器上克隆整个项目的历史记录。每个克隆(或仓库)都像是一个完整的备份,可以用来开发或与其他开发者共享。
  • 快速:Git 相对于其他版本控制系统(如 Subversion)来说,速度非常快。这得益于其高效的数据结构和设计。
  • 灵活性:Git 提供了强大的分支和合并功能,使得开发者可以并行工作在不同的特性或修复上,而不会相互干扰。
  • 安全性:Git 使用了SHA-1哈希算法来确保数据的完整性和安全性。每次提交都会生成一个唯一的哈希值,这个值基于文件的内容和提交信息。
  • 易于学习:虽然 Git 的功能非常强大,但其基本的命令集相对直观,容易上手。

git 的基本使用流程:

  • 安装 Git:首先,你需要在你的计算机上安装 Git。这可以通过访问 Git 官网(https://git-scm.com/)并下载适合你的操作系统的安装包来完成。
  • 配置 Git:安装完成后,你需要配置一些基本的用户信息,如你的姓名和电子邮件地址。这可以通过 git config 命令来完成。
  • 初始化仓库:使用 git init 命令在你的项目目录中初始化一个新的 Git 仓库。这会创建一个 .git 目录,Git 将使用它来存储所有的版本控制信息。
  • 添加文件到仓库:使用 git add 命令将你的文件添加到暂存区(staging area)。暂存区是提交之前的一个准备区域。
  • 提交更改:使用 git commit 命令将暂存区的更改提交到仓库中。你需要为你的提交提供一个描述性的消息。
  • 查看更改历史:使用 git log 命令查看你的提交历史。
  • 分支和合并:Git 支持分支操作,你可以使用 git branch 命令来创建、列出和删除分支。使用 git checkout(Git 2.23 版本后推荐使用 git switch)和 git merge 命令来切换分支和合并分支。
  • 远程仓库:你可以使用 git remote 命令来管理远程仓库。使用 git clone 命令克隆远程仓库到你的本地机器,使用 git push 和 git pull 命令来推送和拉取更改。

举例

  1. 分支管理
  • git branch
    创建新分支:git branch
    查看所有分支(包括本地和远程,使用 -a 参数):git branch -a
    删除分支(本地):git branch -D (注意:大写 -D 会强制删除分支,即使分支未合并)
    切换分支:git checkout (Git 2.23 版本后推荐使用 git switch )
  • git checkout
    切换分支(如上文所述)
    创建并切换新分支:git checkout -b (相当于 git branch 后跟 git checkout )
    恢复工作区文件:git checkout -- (注意:这里使用 -- 是为了避免与分支名冲突)
  1. 远程仓库操作
  • git remote
    添加远程仓库:git remote add
    查看远程仓库信息:git remote -v(显示远程仓库的 URL)
    删除远程仓库:git remote remove (Git 2.0 以前的版本使用 git remote rm)
    修改远程仓库 URL:git remote set-url
  • git fetch
    从远程仓库拉取最新变更(但不合并到当前分支):git fetch
  • git pull
    从远程仓库拉取最新变更并合并到当前分支:git pull (如果远程分支与本地分支同名且已设置追踪,可省略 )
  • git push
    将本地分支的变更推送到远程仓库:git push
    强制推送(慎用):git push -f 或 git push --force
  1. 提交历史操作
  • git reset
    撤销提交并将文件更改放回到暂存区(软重置):git reset --soft
    撤销提交并将文件更改放回到工作目录(混合重置):git reset --mixed 或 git reset (默认选项)
    撤销提交并丢弃所有更改(硬重置):git reset --hard
  • git revert
    创建一个新的提交来撤销指定提交的更改:git revert
  • git cherry-pick
    选择并应用某个提交的更改到当前分支:git cherry-pick
  1. 其他常用命令
  • git stash
    暂存当前工作区的修改,以便稍后恢复:git stash
    查看所有暂存的修改:git stash list
    恢复暂存的修改并删除记录:git stash pop
    删除暂存的修改(不恢复):git stash drop
  • git clean
    删除未跟踪的文件(慎用):git clean -f(强制删除)
    显示将要删除的文件但不实际删除:git clean -n
  • git grep
    在仓库中搜索文本:git grep
  • git reflog
    查看引用日志,用于恢复误删除的提交或分支:git reflog
  • git config
    查看或配置 Git 的设置:git config --list(查看所有配置),git config --global user.name ""(设置全局用户名)等
相关推荐
波音彬要多做25 分钟前
41 stack类与queue类
开发语言·数据结构·c++·学习·算法
大猫和小黄1 小时前
Windows、CentOS环境下搭建自己的版本管理资料库:GitBlit
linux·服务器·windows·git
孤水寒月1 小时前
Git忽略文件.gitignore
git·elasticsearch
m0_748256781 小时前
WebGIS实战开源项目:智慧机场三维可视化(学习笔记)
笔记·学习·开源
南七澄江3 小时前
各种网站(学习资源及其他)
开发语言·网络·python·深度学习·学习·机器学习·ai
机智的叉烧8 小时前
前沿重器[57] | sigir24:大模型推荐系统的文本ID对齐学习
人工智能·学习·机器学习
量子-Alex9 小时前
【多模态聚类】用于无标记视频自监督学习的多模态聚类网络
学习·音视频·聚类
吉大一菜鸡9 小时前
FPGA学习(基于小梅哥Xilinx FPGA)学习笔记
笔记·学习·fpga开发
DN金猿10 小时前
git命令恢复/还原某个文件、删除远程仓库中的文件
git
爱吃西瓜的小菜鸡12 小时前
【C语言】判断回文
c语言·学习·算法