git 笔记/常见命令/as的fetch,pull ,update project的区别/标签管理

这篇具有很好参考价值的文章主要介绍了git 笔记/常见命令/as的fetch,pull ,update project的区别/标签管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Git概念汇总

头(HEAD)

头(HEAD)HEAD类似一个“指针”,指向当前活动 分支 的 最新版本。

工作区(Workspace)

 就是在电脑里能看到的项目代码库目录,是我们搬砖的地方,

在这里我们可以新增文件、修改文件内容,或删除文件。

此时的项目代码库目录还是红色的(没有与git关联),未被git跟踪

此时的工作区的代码修改是不能直接保存到本地仓库的,

需要通过 git add(暂存)把整个项目工程提交到暂存区,

这时项目工程就变成绿色的了,就被gti跟踪了,

在暂存区修改的代码内容 只有通过git commit才能将暂存区修改的内容提交到Git本地仓库

暂存区(stage或index)

    用于临时存放文件的修改,

 用git add 命令将工作区的项目工程代码保存到暂存区,此时的项目工程就被git跟踪了

在暂存区里未修改的代码文件是绿色的, 修改的代码文件是蓝色的

版本库/仓库 Repository

通过git commit 命令将暂存区的内容正式提交到版本库(本地仓库)。

master 为仓库的默认分支master,HEAD是一个“指针”指向当前分支的最新提交,默认指向最新的master。

 通过git push 将本地仓库推送到远程仓库

通过git  pull  从服务端仓库文件拉取更新到本地仓库

git 笔记/常见命令/as的fetch,pull ,update project的区别/标签管理

 

git 笔记/常见命令/as的fetch,pull ,update project的区别/标签管理

 

git常见命令

 

git常见命令

git branch

列出所有本地分支,加参数-v显示详细列表,

git branch -r

列出所有远程分支

 git branch -a

列出所有本地分支和远程分支

git branch -d dev

删除dev分支,-D(大写)强制删除 

git checkout -b dev

从当前分支创建并切换到dev分支

git checkout -b feature1 dev

从本地dev分支代码创建一个 feature1分支,

git switch:

专门只是用来实现分支切换。

git switch dev 

只是切换到dev分支

git reset:

  将已经提交到本地仓库的文件,撤销回退到暂存区(替代checkout的撤销功能。)

                git commit  -m "first commit"

                将暂存区的修改文件提交到本地仓库

               git commit -a

               直接提交工作区的修改内容到本地仓库

              git branch -M "分支名称"

             创建本地分支

            git remote add origin https://github.com/fmf19870210/FMFNote.git

           关联远程git仓库地址

         git push -u origin master

     本地仓库 远程提交主支

git fetch

一旦远程主机的版本库有了更新(Git术语叫做commit),需要将这些更新取回本地,这时就要用到git fetch命令。

git fetch命令通常用来查看其他人的进程,因为它取回的代码对你本地的开发代码没有影响。远程代码取回到本地并不会合并到你的本地分支里去。

git fetch <远程主机名>

git fetch origin

默认情况下,git fetch取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名。

 git fetch <远程主机名> <分支名>

//比如,取回origin主机的master分支。
 git fetch origin master

git pull

先拉取git fetch 某个远程分支的代码,然后再git merge 合并到当前本地分支 或指定的某个本地分支

git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂。

git pull <远程主机名> <远程分支名>:<本地分支名>

//比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。
git pull origin next:master

git pull origin master:master

git pull origin dev:dev

如果远程分支是与当前分支合并,则冒号后面的部分可以省略。

git pull origin next

git pull origin master

git pull origin dev

as的fetch,pull ,update project的区别

git fetch 从远程分支上获取最新版本代码 到本地 ,代码不会合并 merge到当前分支

git pull 从远程分支上拉取最新版本代码 到本地并自动合并 merge到当前分支

git pull =git fetch 和 git merge

update project 会更新项目所有module,但是pull只会更新一个。

合并merge&冲突

git merge dev  dev合并到master没有冲突

合并dev到master,注意要先切换到master分支,然后执行git merge dev,master分支上没有修改内容,直接把dev合并到当前分支master。git 笔记/常见命令/as的fetch,pull ,update project的区别/标签管理

git merge dev  dev合并到master有冲突

把分支dev 8合并到已经修改过内容的分支master 6 
   有冲突需要人工手动解决 合并到新的分支master 9分支上 
   为最新的master分支

git 笔记/常见命令/as的fetch,pull ,update project的区别/标签管理

    <<<<<<< HEAD开头的内容就表示是有冲突的部分,需要人工处理,

=======分割线上方是当前分支的内容,下方是被合并分支的变更内容。

git 笔记/常见命令/as的fetch,pull ,update project的区别/标签管理

标签管理

标签(Tags)指的是某个分支某个特定时间点的状态,是对某一个提交记录的的固定“指针”引用。一经创建,不可移动,存储在工作区根目录下.git\refs\tags。可以理解为某一次提交(编号)的别名,常用来标记版本。所以发布时,一般都会打一个版本标签,作为该版本的快照,指向对应提交commit。

当项目达到一个关键节点,希望永远记住那个特别的提交快照,你可以使用 git tag给它打上标签。比如我们今天终于完成了V1.1版本的开发、测试,并成功上线了,那就可给今天最后这个提交打一个标签“V1.1”,便于版本管理。

git 笔记/常见命令/as的fetch,pull ,update project的区别/标签管理

git tag 查看标签列表

git show [tagname] 查看标签信息

git tag [tagname] 创建一个标签

git tag -a v5.1 -m'v5.1版本'

创建标签v5.1.1039,-a指定标签名,-m指定说明文字

git tag -d [tagname]    删除本地标签

git push origin [tagname]   推送某个标签tagname到远程

git push origin --tags 一次性推送全部标签到远程

后悔药-怎么撤销变更?

发现写错了要回退怎么办?看看下面几种后悔指令吧!

 还没本地提交的怎么撤销?

修改的内容还没提交到工作区、暂存区,不想要了 

使用reset 本地回滚撤销

已提交到本地但没有push到远程的如何撤销?

修改的内容已经提交到工作区、暂存区,不想要了 

使用reset、revert本地回滚撤销

已push到远程的如何撤销?

先使用reset、revert本地回滚撤销

然后强制推送git push origin -f

后悔指令

git 笔记/常见命令/as的fetch,pull ,update project的区别/标签管理

 

checkout指令

git checkout / git checkout [file] 

撤销/清除工作区中 所有的修改内容(该修改内容未添加到暂存区),用暂存区替换当前的工作区。

git checkout HEAD / git checkout HEAD [file] 

撤销/清除工作区、暂存区的修改内容(已经通过git add  将工作区暂存到了暂存区)

用HEAD指向的当前分支最新版本替换工作区、暂存区的版本

reset回退版本指令

reset是专门用来撤销修改、回退版本的指令,支持的场景比较多,多种撤销姿势,所以参数组合也比较多。简单理解就是移动master分支、HEAD的“指针”地址,理解这一点就基本掌握reset了。

reset有三种模式,对应三种参数:mixed(默认模式)、soft、hard。三种参数的主要区别就是对工作区、暂存区的操作不同。

  • mixed为默认模式,参数可以省略。

  • 只有hard模式会重置工作区、暂存区,一般用这个模式会多一点。

git 笔记/常见命令/as的fetch,pull ,update project的区别/标签管理

 

git reset/git reset HEAD/git reset HEAD [file] 

撤销暂存区状态,不影响工作区

git reset [commit]

回退到指定版本,清空暂存区,不影响工作区。

git reset/git reset HEAD/git reset HEAD [file] (HEAD可省略)

撤销暂存区状态,不影响工作区

git reset [commit]

回退到指定版本,清空暂存区,不影响工作区。工作区需要手动git checkout签出

git reset --soft [commit]

移动分支master、HEAD到指定的版本,不影响暂存区、工作区,需手动git checkout签出更新

git reset --hard HEAD

撤销工作区、暂存区的修改,用当前最新版

git reset --hard HEAD~

回退到上一个版本,并重置工作区、暂存区内容。

git reset --hard [commit]

git reset --hard 5f8b961

回退到指定版本,并重置工作区、暂存区内容。

reset案例

git reset --hard v4 或 git reset --hard HEAD~2

回退到版本v4  master、HEAD指针移动到v4。v5、v6就被废弃了。

git 笔记/常见命令/as的fetch,pull ,update project的区别/标签管理

 

git reset --hard v6

也可以重新恢复到v6版本  移动master、HEAD的“指针”地址到V6

git 笔记/常见命令/as的fetch,pull ,update project的区别/标签管理

 

revert提交撤销某个版本的指令

安全的撤销某一个提交记录,基本原理就是生产一个新的提交,用原提交的逆向操作来完成撤销操作。注意,这不同于reset,reset是回退版本,revert只是用于撤销某一次历史提交,操作是比较安全的。

git revert[commit]

撤销之前的一个提交,

会生成一个新的提交     来完成    撤销之前的一个提交  操作,

案例

git revert v4    -m'撤销对***的修改'
 

 这个提交的指令就是撤销v4版本 v4版本就不存在了

同时更新maser、HEAD“指针”位置,以及工作区内容。

“-m”附加说明”

git 笔记/常见命令/as的fetch,pull ,update project的区别/标签管理

 

感谢

我看谁还不懂 Git !(万字长文)文章来源地址https://www.toymoban.com/news/detail-457677.html

到了这里,关于git 笔记/常见命令/as的fetch,pull ,update project的区别/标签管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Git常见问题:git pull 和 git pull --rebase二者区别

    git pull 和 git pull --rebase 都是从远程仓库获取最新的更改并将其合并到本地分支。但它们之间的区别在于合并方式。以下是它们之间的主要区别: git pull: 当你执行 git pull 时,Git 会执行以下两个操作: git fetch:从远程仓库获取最新的更改,将其存储在一个临时的分支上(通

    2024年02月09日
    浏览(50)
  • fetch、pull 命令详细介绍

    在上一章 使用 GitHub 远程仓库 文章中我们简单介绍了一下 fetch 和 pull 的使用,现在我们来深入了解一下这两个命令。 回顾一下上一章的可视化图 我们通过 git fetch 命令更新的只是本地的追踪分支( origin/main ) 分支相关 新增 如果此时远程仓库中多了一个 dev 分支,我们可以

    2024年01月25日
    浏览(28)
  • git fetch - git merge - git pull 指令

    Incorporates changes from a remote repository into the current branch. In its default mode, git pull is shorthand for git fetch followed by git merge FETCH_HEAD . 在默认模式下, git pull 命令是 git fetch 和 git merge FETCH_HEAD 命令的组合, git pull = git fetch + git merge FETCH_HEAD ,将远程存储库中的更改合并到当前分支中。

    2024年02月05日
    浏览(45)
  • git fetch, git pull, git merge, git rebase

    背景: 我们发现很多同学习惯性用git pull拉取远端仓库代码, 但是这会带来一个问题,如果有了本地commit再git pull的话,会产生一个merge commit, 这样的merge commit会导致git log分支节点很多,很乱。 首先聊一聊git pull,git merge,git rebase这些常听到的命令吧,初入git的同学一定还

    2024年02月03日
    浏览(58)
  • 0065__git fetch, git pull, git merge, git rebase

    git fetch, git pull, git merge, git rebase_git pull和merge_送你一朵小莲花的博客-CSDN博客

    2024年02月09日
    浏览(58)
  • git pull无效,显示 * branch master -> FETCH_HEADAlready up to date. pull无效解决方法

    本地文件夹中删除文件后 ,git pull无效。显示如下: 命令如下: 比如错删a.txt: 一个命令恢复全部文件: 参考文章如下: 【Git 教程系列第 22 篇】删除本地文件后,使用 git pull 命令从远程仓库无法拉取到被删除文件的解决方案_git 删除本地文件再pull没有_Allen Su的博客-CSDN博客

    2024年02月15日
    浏览(56)
  • SSH连接下Git fetch/pull/push 速度太慢的一些解决办法

    有时候某些git的代码库在fetch远端的时候会非常慢,速度只有几十k或者几k。这个速度拉取一整个代码库可能要花费一晚上或者一天时间。甚至在每天更新已有代码库时候也会花上十分钟。可以尝试一下这些方法来提升拉取远端代码的速度: 1. Git 版本过低的话可能会导致这个

    2024年02月10日
    浏览(55)
  • git常见问题 — git pull时提示 git pull <remote> <branch>

    git pull的时候提示git pull 说明,当前的分支并没有和本地分支关联,根据提示进行下一步: 1.将指定当前工作目录工作分支,跟远程的仓库分支之间进行关联 2.再次拉取代码

    2024年02月11日
    浏览(65)
  • git常用命令之Fetch

    Further Reading : git git fetch 、git fetch origin、 git fetch origin master 区别 Further Reading : git fetch时 FETCH_HEAD和.gitrefsremotesorigin会有哪些变化 拓展:Git常用命令汇总

    2024年02月11日
    浏览(38)
  • git clone与git pull区别

    从字面意思也可以理解,都是往下拉代码,git clone是克隆,git pull 是拉。 但是,也有区别: 从远程服务器克隆一个一模一样的版本库到本地, 复制的是整个版本库 ,叫做clone.(clone是将一个库复制到你的本地,是一个本地从无到有的过程) 从远程服务器获取到一个branch分支

    2024年02月10日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包