Git基础命令,分支,标签的使用【快速入门Git】

这篇具有很好参考价值的文章主要介绍了Git基础命令,分支,标签的使用【快速入门Git】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Git基础

常用命令

  1. 创建仓库
命令 说明
git init 初始化仓库
git clone 克隆远程仓库
  1. 提交与修改
命令 说明
git add 添加文件到暂存区
git status 查看仓库当前的状态,显示有变更的文件
git diff 比较文件的不同,即暂存区和工作区的差异
git commit 提交暂存区到本地仓库
git reset 回退版本
git rm 将文件从暂存区和工作区中删除
git mv 移动或重命名工作区文件
git checkout 分支切换
git switch 更清晰地切换分支
git restore 恢复或撤销文件的更改
  1. 提交日志
命令 说明
git log 查看历史提交记录
git blame 以列表形式查看指定文件的修改记录
  1. 远程操作
命令 说明
git remote 远程仓库操作
git fetch 从远程获取代码库
git pull 下载远程代码并合并
git push 上传远程代码并合并

Git工作流程

Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

工作区,暂存区和版本库

在开始学习Git命令之前,需要了解一下工作区,暂存区,版本库这三个概念。工作区、暂存区和版本库是Git版本控制系统中的三个核心概念,它们共同协作,实现了代码的版本管理和控制。

  1. 工作区(Workspace):这是你在电脑中能直接看到的目录,也就是你进行代码编写、修改的地方。在工作区中,你可以对文件进行增删改查等操作。

Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

  1. 暂存区(Stage/Index):暂存区是一个中间区域,它位于工作区和版本库之间(存放于.git/index)。当你对工作区的文件进行修改后,这些修改并不会直接反映到版本库中,而是先被放入暂存区。你可以使用git add命令将工作区的文件添加到暂存区。暂存区的作用主要是为了让用户有机会在提交之前再次确认哪些文件需要被版本控制,以及它们的修改内容。

Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

  1. 版本库(Repository):版本库是Git用来存储所有版本信息的地方,它是一个隐藏目录(默认为.git)。版本库中保存了项目的所有历史记录,包括每一次提交的元数据和文件内容。在版本库中,所有的文件都被以特定的格式存储,以便Git能够高效地管理和追踪文件的变化。

在Git的工作流程中,通常会先在工作区进行代码的编写和修改,然后使用git add命令将需要提交的文件添加到暂存区,最后使用git commit命令将暂存区的文件提交到版本库。这样,就完成了一次版本的更新。

文件状态

在工作区的工作目录中,每一个文件的状态不外乎两种状态:已跟踪或未跟踪。
已跟踪文件:是指被纳入了版本控制的文件,在上一次快照中有他们的记录,在工作一段时间后,它们的状态可能是未修改,已修改或者已放入暂存区的。(已跟踪其实就是git add 过的了)。
未跟踪的文件:就是没有被版本控制过的文件。

下图为:文件的状态周期变化
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git
在Git仓库中,文件分为以下几种状态:

  1. Untracked未跟踪,这意味着文件存在于文件夹中,但尚未被加入到Git库,因此不会参与版本控制。如果希望这个文件能被Git追踪,可以使用git add命令将其添加到Git仓库。
  2. Unmodified文件已经入库且未修改,即版本库中的文件快照内容与文件夹中的文件完全一致。这种文件有两种可能的变化:如果文件被修改,它将变为Modified状态;如果文件被从Git库中移除(使用git rm命令),它将回到Untracked状态。
  3. Modified文件已修改,但尚未进行其他操作。这种文件有两种可能的变化:通过git add命令,可以将文件添加到暂存区(Staged状态),或者通过git checkout命令,可以撤销修改,使文件回到Unmodified状态。
  4. Staged暂存状态。在这种状态下,文件已经被标记为准备提交,但尚未执行git commit命令。执行git commit后,修改将被同步到Git库中,这时库中的文件和本地文件将再次变得一致。

此外,在提交之前,文件还可能处于以下状态:

  • Changes not staged for commit表示文件已经被修改,但还没有放入暂存区域,也没有生成快照。这些修改可以通过git add命令添加到暂存区,或者通过git checkout命令撤销。
  • Changes to be committed表示文件已经在暂存区生成了快照,等待被提交。这时,可以使用git commit -m "注释"命令来提交文件。在这个状态下,文件也可以继续被修改,或者通过git rm --cached 文件名命令,将文件状态还原为Untracked状态。

获取Git仓库 git init | git clone

获取Git仓库的两种方式:

  1. 将尚未进行版本控制的本地目录转换为Git仓库。 git init
  2. 从其他服务器克隆一个已存在的Git仓库。git clone 仓库地址
# 1. 将未进行版本控制的目录转换为Git仓库
cd /xxx/project

# 初始化git仓库
git init 

# 2.克隆现有的仓库
git clone "git仓库地址"

为了方便演示,我在Gitee码云上创建了一个新的仓库,仓库地址是https://gitee.com/zhweb2022/demo-git.git

Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

设置一下远程仓库地址 git remote add origin https://gitee.com/zhweb2022/demo-git.git

Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

查看文件状态 git status

如何查看当前文件的状态?git status
新增文件,使用git status查看状态,窗口输出README.md文件状态是未跟踪的,即这个文件存在于文件夹中,但是尚未加入到git仓库中。
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

初始文件内容为:
# Git命令练习

```bash
git init 

暂存已修改的文件 git add

使用 git add README.md 将README.md文件提交到本地git仓库中,此时文件状态为changes to be committed表示当前文件已经在暂存区中生成了快照,等待被提交到远程仓库。
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

查看已暂存和未暂存的修改 git diff

往README.md文件中添加一些内容,再次查看文件状态git status,此时会出现两个状态树,一个是我们之前的README.md一个是修改后的README.md,Changes not staged for commit表示文件已经被修改但是尚未提交到暂存区,README.md的文件状态是modified表示文件被修改,但尚未执行其他操作。
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

查看一下,此次README.md文件新增了哪些内容,使用git diff来查看。
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git
新的README.md的完整内容如下:

# Git命令练习

```bash
git init # 初始化创建仓库

git add 文件名 # 将文件进行版本控制

git status # 查看当前目录的文件状态

我们将README.md的改动进行暂存 git add README.md,任何文件改动(未跟踪或者已经跟踪但是改动的),每次都需要使用git add 文件名进行暂存
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

提交文件更改 git commit

使用git commit -m "README.md"将README.md文件提交到本地仓库,再次使用git status进行文件状态查看,可见README.md成功提交到本地仓库。
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

我们再进行一次改动README.md,并且进行提交

# Git命令练习

```bash
git init # 初始化创建仓库

git add 文件名 # 将文件进行版本控制

git status # 查看当前目录的文件状态

git commit -m "提交描述" # 将当前暂存区中的内容提交到本地仓库中

Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

  1. 首先,使用git status查看了一下当前文件状态
  2. 然后使用git add README.md将文件改动暂存到缓冲区中
  3. 将暂存区的文件提交到本地仓库,使用git commit -m "描述"
  4. 再次查看文件状态 git status

移除文件 git rm

首先,在当前文件夹下新增一个rm_txt.txt文件,然后将其添加到暂存区中,接着提交到本地仓库。
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

然后我们将rm_txt.txt文件进行移除,使用git rm命令,并且查看文件状态git status,发现rm_txt.txt文件已经被删除了,然后我们提交此次的更改。
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

移动文件-文件重命名 git mv

我们将README.md文件重命名为readme.mdgit mv README.md readme.md,然后查看一下文件状态git status,并且更新暂存改动git add readme.md,最后进行此次的改动提交git commit -m "README.md重命名"
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

查看提交历史 git log

现在,我们已经提交了多次更改,那么如何查看我们提交的历史记录呢,使用git log命令即可进行查看,它会按照时间进行显示。
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

远程仓库的使用【配置和查看】git remote

添加远程仓库的命令 git remote add origin https://gitee.com/zhweb2022/demo-git.git
因为我在一开始就已经配置过远程仓库了,那么来查看下当前的远程仓库git remotegit remote -v
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git
使用git remote会看到控制台输出 origin 这是因为Git仓库服务器的默认名字就是 origin.
使用git remote -v 则可以看到读写远程藏剑使用的git及其url.

远程仓库的拉取和推送 git pull git fetch & git push

推送

因为我的远程仓库是空的,我就先演示如何推送到远程仓库
使用命令**git push origin master**进行推送到远程仓库,这段命令的意思就是将本地仓库中的内容提交到origin服务器的master主分支上。(刚刚已经提到过origin就是Git对远程仓库的默认名称)

推送之后,我们便可以在Gitee码云仓库上看到了。

Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

并且每次提交的改动,也可以看到
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

拉取

git fetch

从远程仓库中获取数据,拉取到本地,使用git fetch命令,git fetch 的基本语法是 git fetch [options] [repository] [refspec...]。其中,[options] 是可选的命令行选项,[repository] 是远程仓库的名称或URL,[refspec...] 用于指定要获取的分支和标签。

首先,我们创建一个新的文件夹demo-git-fetch用于测试拉取远程仓库的master分支。
先初始化一个本地仓库git init,然后配置一下远程仓库地址 git remote add origin https://gitee.com/zhweb2022/demo-git.git
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git
远程仓库地址配置完成后就可以使用git fetch命令进行拉取了
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git
拉取完成之后合并到本地即可 git merge 本地分支名称
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

git pull

git pull 命令的作用是拉取并合并,等同于 git fetch + git merge
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

补充-撤销操作

在任何阶段,都可能会需要撤销操作。

  1. git commit --amend 提交撤销
  2. git reset回退,撤销文件的的暂存
  3. git checkout --<file> 撤销对文件的更改(谨慎使用)

练习一下:我们逐个练习提交撤销,文件暂存撤销,文件更改撤销

① 提交撤销(本质上是利用新的提交覆盖旧的提交)
首先,新建两个文件test1.txttest2.txt,并将test1.txt提交git commit,此时test2.txt尚未提交,所以我们将test2.txt进行版本控制,然后撤销提交重新提交。

Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git
下图是我们使用 git commit --amend时弹出的信息,我们可以在这里进行编辑重新提交的描述,它会将我们当前暂存区中的全部内容作为新的 changes to be committed

Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

② 文件暂存撤销回退 git reset
新建文件test3.txt,将test3.txt提交到暂存区中,然后撤销回退(哈哈哈,和Ctrl + Z神似)。
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

③ 文件更新回退 git checkout -- 文件名
新建文件test4.txt,将其暂存git add test4.txt,然后更改内容(添加一段文件 ”hello world“),最后撤销git checkout -- test4.txttest4.txt更新的内容
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

Git分支管理

一个分支代表一条独立的开发线,使用分支意味着可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

创建分支 git branch (branchname)
切换分支 git checkout (branchname):切换分支时,Git会用该分支的最后提交快照替换当前的工作目录的内容,所以多个分支不需要多个目录。
合并分支 git merge:将多个分支合并到同一个分支,
删除分支 git branch -d (branchname)

查看当前的分支

Tips:当初始化仓库git init时,Git会默认创建一个master分支

使用git branch命令即可列出当前Git仓库的分支
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

创建分支

使用git branch branchname即可手动创建一个新的分支
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

切换分支

使用命令git checkout (branchname)就可以切换不同的分支。当我们可以切换分支时,就可以开始搞事情啦!

从控制窗口就可以清楚的看到,当前的操作的分支是哪一个,如下图:
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

开始搞事情!!!

首先,我们在工作区中新建三个文件,分别是testbranch1.txt``testbranch2.txt``tetsbranch3.txt
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

我们将新增的三个文件,通通保存到暂存区,然后提交到testbranch1分支上
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git
接着,神奇的一刻发生了,我们重新切换分支到master主分支上git checkout master,发现我们对testbranch1分支做的操作”好像都没了!“,这其实就是分支的特点,正如疑问所说,操作都在testbranch1分支中保存着。

Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

分支合并

经过上面的操作,我们已经初步了解了分支的概念及使用,那么,如何将刚刚在testbranch分支上保存的操作也添加到master分支上呢?
答案是:合并分支!

使用git merge <branchname>命令,即可进行分支合并,它可以将任何分支或者是指定的分支合并到当前的分支中去。

试一试:将testbranch1分支的内容合并到master分支中(注意:记得切换到master主分支,再进行操作哦)。
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

合并冲突

前面虽然也完成了分支的合并,但是真实的情况下,要比这复杂,多个分支都会对共有的文件进行操作,那么多个分支都操作了多次以后,我们如何进行合并这些冲突。

举个栗子:用master分支对testbranch1.txt文件进行更改,然后再切换到testbranch1分支,也对testbranch1.txt文件进行更改,最后在master分支上,进行分支合并。

① master 分支对 testbranch1.txt 文件进行更改
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git
暂存更新内容,然后从master分支上面提交
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

② 切换到testbranch1分支中
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git
同样我们对testbranch1.txt文件进行操作
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git
此时,两个分支都对testbranch1.txt进行了操作,接下来我们开始合并分支冲突

③ 分支冲突合并
首先切换到master分支git checkout master,然后我们试着以之前的方式合并一下git merge testbranch1
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

提一嘴:git中很多基础命令和linux意思功能一致,我就不过多赘述了。

看到提示不慌,我们再看一下testbranch1.txt中的内容。原来,刚刚分支合并也是做了一点事情,它会将不同分支做的操作,输出到有冲突的文件中。
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

接着我们使用vim命令进行更改testbranch1.txt中的内容,只需要将文件改为正确的样子(预期的样子)即可,记得保存 ESC + : 然后 wq

Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

最后,将文件的改动进行暂存git add testbranch1.txt然后提交到合并分支上git commit -m "分支冲突合并"即可。

Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git
其实,看完上面这张图就明白了,分支冲突和并的本质也是用新的文件内容去覆盖旧的冲突内容,然后将新的内容提交到合并分支上。

Git 标签

Git标签:标签,经常用来记录某个版本或者阶段,用以标识区分。

查看标签

使用git tag 即可查看当前Git仓库的标签
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

新建标签

标签分为 附注标签和轻量标签两种。
附注标签的创建方式:git tag -a 标签名 -m "详细描述"
轻量标签的创建方式:git tag 标签名
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

删除标签

删除标签使用命令 git tag -d <tagname>即可删除标签
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

练习一下

在练习之前先将我们的仓库进行推送一下,将两个分支都推送到远程仓库。

git push origin master # master分支下

git checkout testbranch1 # 切换分支

git push origin testbranch1 # 推送新的分支到远程仓库

Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git

推送完毕,打个标签V1.0,新增个testTag.txt,再推送一下吧!
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git
Git基础命令,分支,标签的使用【快速入门Git】,Java知识回顾,git,git文章来源地址https://www.toymoban.com/news/detail-828441.html


到了这里,关于Git基础命令,分支,标签的使用【快速入门Git】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git的基础命令大全,拉取推送,分支,合并

    命令如下: 1. clone(克隆): 从远程仓库中克隆代码到本地仓库 2. checkout (检出):从本地仓库中检出一个仓库分支然后进行修订 3. add(添加): 在提交前先将代码提交到暂存区 4. commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本 5. fetch (抓取) : 从远程库

    2024年02月12日
    浏览(45)
  • 【Linux系统基础快速入门详解】Linux核心find命令原理详解和每个命令使用场景以及实例

    鱼弦:CSDN内容合伙人、CSDN新星导师、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen) find 命令是在 Linux 操作系统中用于搜索文件和目录的命令行工具。它可以根据不同的条件来搜索特定的文件和目录,这些条件可以是文

    2024年02月07日
    浏览(67)
  • Git的核心概念:探索Git中的提交、分支、合并、标签等核心概念,深入理解其作用和使用方法

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月16日
    浏览(51)
  • 【Git】Git分支与应用分支&Git标签与应用标签

    在 Git 中,分支是指一个独立的代码线,并且可以在这个分支上添加、修改和删除文件,同时作为另一个独立的代码线存在。一个仓库可以有多个分支,不同的分支可以独立开发不同的功能,从而可以方便地进行并行开发和测试 Git 的分支可以帮助团队进行并行开发,例如在主

    2024年02月05日
    浏览(36)
  • 基础篇_快速入门(Java简介,安装JDK,cmd命令行运行Java文件产生乱码问题的解决方式,IDE工具,实用工具)

    Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今,Java 仍是企业和开发人员的首选开发平台,全球有数百万开发人员运行超过 51 亿台 Java 虚拟机。 它是 Java Virtual Machine 也就是 Java 虚拟机的缩写,它的职责是解释执

    2024年01月23日
    浏览(54)
  • git快速入门!!! git的常用命令!!!

    Git 是一个开源的分布式版本控制系统,有很多实用的命令可以帮助我们更高效地管理项目和代码。以下是一些常用的 Git 命令及其使用方法和示例: 1. 初始化一个新的 Git 仓库 这个命令会在当前目录下创建一个新的 Git 仓库。 2. 添加文件到暂存区 这个命令会把指定的文件添

    2024年02月05日
    浏览(56)
  • Git分支与Git标签详解

    目录 前言 一、Git分支(Branch) 1.分支的概念 2.分支的常用操作 3.Git 分支管理 二、Git标签(Tag) 1.标签的概念 2.标签的类型 3.标签的常用操作 4.Git标签管理         在软件开发过程中,版本管理是非常重要的一环。Git作为目前最流行的分布式版本控制系统之一,提供了丰

    2024年02月05日
    浏览(36)
  • 《五》 Git 中的标签和分支

    Git 可以给仓库中某一次 commit 的提交打上标签。对于重大的版本经常会打上一个标签来表示它的重要性。 创建标签: git tag【tag 名称】 :创建标签。 查看标签: git tag :查看标签。 推送标签到远程仓库: 默认情况下, git push 命令并不会将标签推送到远程仓库中去,必须显

    2024年02月09日
    浏览(35)
  • git 创建标签 推送到远程分支上

    要在Git中创建标签并将其推送到远程dev分支,可以按照以下步骤操作: 1、首先,确保你已经在本地的Git仓库中,并且切换到dev分支。 2、创建标签并给予其一个有描述性的名称。你可以使用以下命令创建一个轻量级标签: 例如: 或者,你可以创建一个带有附注的标签,其中

    2024年02月15日
    浏览(86)
  • [Git] Git零基础?带你快速入门,示例练习上手

    😚一个不甘平凡的普通人,致力于为Golang社区和算法学习做出贡献,期待您的关注和认可,陪您一起学习打卡!!!😘😘😘 🤗专栏:算法学习 🤗专栏:Go实战 💬个人主页:个人主页 参考学习资料:黑马程序员Git教程

    2024年02月05日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包