基础学习之——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 ""(设置全局用户名)等
相关推荐
hopetomorrow23 分钟前
学习路之压力测试--jmeter安装教程
学习·jmeter·压力测试
hopetomorrow24 分钟前
学习路之PHP--使用GROUP BY 发生错误 SELECT list is not in GROUP BY clause .......... 解决
开发语言·学习·php
/**书香门第*/1 小时前
Cocos creator 3.8 支持的动画 7
学习·游戏·游戏引擎·游戏程序·cocos2d
美式小田1 小时前
单片机学习笔记 9. 8×8LED点阵屏
笔记·单片机·嵌入式硬件·学习
猫爪笔记1 小时前
前端:HTML (学习笔记)【2】
前端·笔记·学习·html
-一杯为品-2 小时前
【51单片机】程序实验5&6.独立按键-矩阵按键
c语言·笔记·学习·51单片机·硬件工程
风尚云网3 小时前
风尚云网前端学习:一个简易前端新手友好的HTML5页面布局与样式设计
前端·css·学习·html·html5·风尚云网
EterNity_TiMe_4 小时前
【论文复现】(CLIP)文本也能和图像配对
python·学习·算法·性能优化·数据分析·clip
sanguine__5 小时前
java学习-集合
学习
lxlyhwl5 小时前
【STK学习】part2-星座-目标可见性与覆盖性分析
学习