当前位置: 首页 > article >正文

Git实用指南(精简版)

目录

读者须知

Git是什么

Git的原理

文件在Git中的几种状态

快速上手

结尾


读者须知

本文章适合从未接触过git,或者需要深度学习Git的用户进行阅读.

文末有详细的文档,读者可以前往Github下载阅读!!三克油

Git是什么

简单来说,Git是一个代码备份工具,你可以使用指令对某些节点打上标注信息并且进行备份.你可以利用他在任何时候对代码进行备份,检阅之前的备份,回退到某个备份.额外的还可以合并他人的备份,并且这一系列可以不需要联网就能进行!(当然有网络就会更方便)

官方一点的讲法,Git 是一款分布式的、可供多人开发的版本控制软件,在多人项目开发当中用于控制项目版本,方便执行该场景下的提交、合并、回退等操作。

Git的原理

  • Workspace:工作区,就是你写代码的 IDE 所看见的区域
  • Index / Stage:暂存区,执行 add 和 stash 之后,你的代码将会被放入该区域,不过 add 会对其进行追踪
  • Repository:本地仓库,执行 commit 之后将记录保存到本地
  • Remote:远程仓库,执行 push 之后将本地的记录与远程对比再合并

文件在Git中的几种状态

在系统中,一切资源皆文件,所有的文件可以在IDE查看他们的状态来确认他们被提交到哪个区当中!

Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到 git 库, 不参与版本控制. 通过 git add 状态变为 Staged.

Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为 Modified. 如果使用 git rm 移出版本库, 则成为 Untracked 文件

Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过 git add 可进入暂存 staged 状态, 使用 git checkout 则丢弃修改过, 返回到 unmodify 状态, 这个 git checkout 即从库中取出文件, 覆盖当前修改

Staged: 暂存状态. 执行 git commit 则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为 Unmodify 状态. 执行 git reset HEAD filename 取消暂存, 文件状态为 Modified

快速上手

理解完基本概念,对Git有一个基础的模型,就可以上手写代码了.关于Git的安装,可以搜索Git官网来下载Git Bash ,这里不再讲解!!!

打开Git Bash,可以发现是一个类似于CMD的黑框框,而上面的一系列操作,都需要你以指令的形式敲入这个框当中来进行,你的脑海中要你能够知道你敲的指令是到哪一步了,这样才能够游刃有余.

(1)创建一个本地git仓库

首先找一个空白目录,然后将Git Bash的目录切到该目录,输入:

git init

这样你就拥有了一个仓库,会生成一个隐形的.git目录,存放你的备份信息

(2)设置个人信息

git config --global user.name "你的昵称,用于显示提交信息"
git config --global user.email "你的邮箱"

这样你的提交会带上这些信息,方便他人联系你

(3)拉取一个仓库

git clone "https://xxxx.com/url"

这样可以将别人的仓库拉取到本地的当前路径,拉取完后会有该远程仓库的信息

(4)给远程仓库地址取别名

git remote add origin https:www.github.com/xxx.git

这里将https:www.github.com/xxx.git取一个代号叫origin,如果代号已存在会失败

(4)给远程仓库地址改别名

git remote set-url origin https:www.github.com/xxx.git

这里将代号叫origin的远程仓库地址改为https:www.github.com/xxx.git,如果origin不存在会失败

(5)将本地开发进度推送到暂存区

git add .

这一步会将当前项目所有的文件加入暂存区,后面提交会将暂存区内所有内容提交到本地仓库

(6)提交代码到本地仓库

git commit  -m "说明信息"

这一步会将暂存区内所有内容形成提交记录交到本地仓库

(7)切换分支

git checkout -b xxx

这一步会将当前分支复制一份出来,命名为xxx分支,并且将切换到xxx分支

如果不带-b,就是直接切换到xxx分支

(8)获取远程仓库的分支

虽然Git可以不需要联网,但是一般有一个统一的仓库,方便大家更新进度.当你需要将别人的备份合并到你本地时,你需要通过网络从该仓库上获取.

git fetch origin A:B

这一步将远程仓库的A分支,拉取到本地的origin/B分支上,其中形似origin/B的分支被称为远程追踪分支

(9)分支合并

git merge AAA

这一步会将你本地的AAA分支合并到当前所在分支,当然你也可以将其换成某个程追踪分支

(10)拉取并合并分支

git pull origin A:B

没记错的话,这一步会将远程仓库的A分支拉取到本地的origin/B分支上,并自动将origin/B合并到本地的B分支上.也相当于fetch与merge的组合

(11)推送分支

git push -u origin A:B

这一步将本地的A分支推送到远程仓库的B分支,并建立追踪,下次可以直接在A分支上使用git push代替该语句

(12)查看远程仓库的信息

git remote -v

这样可以查看你的git push和git pull的目标仓库是哪个 

结尾

Git指令实在是太多了,推荐你看看我整理的文档把 ,祝你早日精通Git成为大神!

最后欢迎批评指正!图片来源应该也包含在参考链接当中.

https://github.com/theOnlyUnique/GitFortune/


http://www.kler.cn/a/448439.html

相关文章:

  • unity webgl部署到iis报错
  • 信创技术栈发展现状与展望:机遇与挑战并存
  • 【AI知识】为什么激活值过大/过小,初始权重过大/过小,可能导致梯度爆炸/消失?具体例子举例
  • WPF 使用LibVLCSharp.WPF实现视频播放、停止、暂停功能
  • Tomcat部署war包项目解决404问题
  • 彻底认识和理解探索分布式网络编程中的SSL安全通信机制
  • Vulnhub靶场Nginx解析漏洞复现
  • Chromium GN目标指南 - 查看GN目标(三)
  • C++简明教程(文章要求学过一点C语言)(3)
  • [机器学习]XGBoost(1)——前置知识
  • Android水波纹搜索效果
  • Java并发编程框架之综合案例—— 分布式爬虫(四)
  • springboot基于Java的校园导航微信小程序的设计与实现
  • React+Vite项目框架
  • 如何构建一个简单的SpringBoot程序
  • 《软件工程文档攻略:解锁软件开发的“秘籍”》
  • 基于Spring Boot的营销项目系统
  • 题解:单调栈求解良好的感觉
  • leetcode 面试经典 150 题:无重复字符的最长子串
  • [react]searchParams转普通对象
  • 【CVE-2024-56145】PHP 漏洞导致 Craft CMS 出现 RCE
  • vue3 setup模式使用事件总线Event bus用mitt,app.config.globalProperties.$bus
  • MySQL 主从复制与高可用
  • MongoDB(下)
  • 深度学习之目标检测——RCNN
  • 《Java核心技术I》Swing的组合框