0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用Git命令解决常见场景记录

马哥Linux运维 来源:马哥Linux运维 2023-12-20 09:44 次阅读

本文主要归纳一下git的学习记录,在开发期间发现了git在sourcetree的处理不是很好,对于多选文件的丢弃这点不是很方便,所以做一个记录,由于项目中有新建的文件,所以被识别为未跟踪的文件,但我不需要这些文件了,想要批量处理掉,所以记录一下用命令行一次性丢弃未跟踪文件的方法,同时也记录一下撤销push请求的git记录。

Untrace类型文件

"Untracked files" 指的是在版本控制系统中(如 Git)的代码库中存在但尚未被版本控制追踪的文件。这些文件包括在代码库中,但 Git 不会监视它们的更改或将它们包含在版本历史记录中。

当你在 Git 仓库中创建新文件时,这些文件默认是未追踪的。未追踪的文件不会被 Git 记录,因此它们不会出现在版本历史记录中,也不会被包含在提交中。

查询未跟踪文件

使用命令行 丢弃 untrace(未跟踪)的文件,这里在sourcetree中有六个未跟踪的文件,在sourcetree中可以使用右键来对不需要跟踪的文件进行丢弃,但是一个个的去丢弃比较麻烦,我也试过用全选加丢弃快捷键来进行丢弃,但效果不是很好

wKgaomWCR0eAd0hYAACVPjKhKQE565.jpg

所以建议使用git命令来进行文件的丢弃

5cc9872a-9e67-11ee-8b88-92fbcf53809c.jpg

先用git status来检查当前项目的修改状态

可以看到有这么几个标红的文件,并且类型为Untracked files,就是未跟踪的文件

清除未跟踪文件

想要清除未跟踪的文件 一般是用 git clean 来进行清除,用于从工作目录中删除未追踪的文件,但是创建文件的时候,可能同时创建了文件夹,所以git也提供了一个后缀来修饰命令,加上-d表示删除未被追踪的目录。

如果不加-d,则git clean只会删除未被追踪的文件而保留未被追踪的目录。

-f: 表示强制执行,即不会提示确认,直接删除未追踪的文件。

因为我用git status 提前查询了未跟踪的文件,所以这里我直接删除掉加上-f

5cde1e74-9e67-11ee-8b88-92fbcf53809c.jpg

清除后重新看下git status来看下当前分支的情况。

5cf31dce-9e67-11ee-8b88-92fbcf53809c.jpg

可以看到当前分支是没有改动的。

撤回已push代码

在日常开发可能会经常遇到某些功能实现了,产品又不需要的场景

5cfd15ae-9e67-11ee-8b88-92fbcf53809c.jpg

当前这提交是我不需要的,但是已经push到分支上面去了,如果来解决这问题,需要我们把已经提交的代码撤回

如果是在自己的项目的开发环境可以直接执行

git reset --hard HEAD

将当前分支的 HEAD 移动到前一个提交,即删掉本地最后一个commit

然后再使用

git push --force-with-lease

推送到远程删掉最后一个commit。

git cherry-pick HASH 最后本地恢复最后一个commit。

git reset --hard和git push --force-with-lease是一种强制推送的操作,会修改远程仓库的历史记录。在多人协作的项目中,强制推送可能会影响其他开发者的工作

所以上面的方法并不是最推荐的

使用git revert撤销提交

先通过git log 来查找最后一次提交的hash

git log

找到对应的hash值来进行

到命令行中直接执行


git revert 
git revert bc4b4198b43ae601f05d25d34f0cff65240525f4

5d118f3e-9e67-11ee-8b88-92fbcf53809c.jpg

然后再进行提交


git push origin 

其中是你要撤销的提交的哈希值,是你的分支名称。

5d2b61fc-9e67-11ee-8b88-92fbcf53809c.jpg

对比一下可以看到先后两次提交

5d3f5d56-9e67-11ee-8b88-92fbcf53809c.jpg

相比起之前的强制提交会更加的友好,不会因为其他开发者拉取分支导致分支删除,然后产生冲突。

总结

本次总结了两个日常开发经常可能会遇到的git操作场景,减少使用强制提交,给每个提交都留下记录,避免开发过程中的开发者直接的分支冲突,是一个很关键的点。

链接:https://juejin.cn/post/7313862981029232655







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Git
    Git
    +关注

    关注

    0

    文章

    196

    浏览量

    15714

原文标题:用Git命令解决常见场景

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Git常用命令总结

    在之前的文章中,我们讨论了一些初学者必备的 Git 命令。然而,这些命令仅仅触及了 Git 功能的皮毛。
    发表于 07-21 10:30 281次阅读

    Git常用的超级实用命令

    的一些Git工作流。 1 Git 常用的超级实用命令 1.1 与仓库相关的操作 克隆代码仓库到本地,开发必 git clone 查看本地仓
    的头像 发表于 10-09 17:19 1118次阅读
    <b class='flag-5'>Git</b>常用的超级实用<b class='flag-5'>命令</b>

    git命令的基本使用

    git config 第一次使用git或者刚安装的git时,使用此命令设置身份Name 和 Eamail 地址。并且每次提交时会使用此信息。
    的头像 发表于 12-11 13:53 863次阅读

    Git命令之本地分支与远程分支关联和解除

    的远程分支被删除了,那么就会出现你无法使用git pull,和git push命令。使用一个例子说明这个场景。 我们可以使用下面的命令查看自
    的头像 发表于 12-15 09:27 2846次阅读
    <b class='flag-5'>Git</b><b class='flag-5'>命令</b>之本地分支与远程分支关联和解除

    SVN,HG,GIT命令对照

    SVN,HG,GIT是三种常见的版本控制系统,本文简单列出一些相似的操作命令。当然,三种系统各有特点,严格的对应关系是没有的。1,第一次下载,包括源码和版本库: svn checkout http
    发表于 01-13 16:53 0次下载

    第一本Git命令教程(六) - 日志

    。有三种 Git 命令可以帮我们查看记录,痞子衡为大家一一讲解: 1. 查看本地历史提交 git log git log 是最直接的查看历史
    的头像 发表于 12-05 17:22 752次阅读

    Git 命令+原理 程序员必备的基础

    掌握Git命令是每位程序员必备的基础,之前一直是smartGit工具,直到看到大佬们都是在用Git命令操作的,回想一下,发现有些
    的头像 发表于 11-14 10:01 1714次阅读
    <b class='flag-5'>Git</b> <b class='flag-5'>命令</b>+原理 程序员必备的基础

    Git常见的误区和命令行工具等综述

    Git常见的误区和命令行工具等综述
    发表于 08-31 09:51 0次下载

    GIT合代码的经典操作场景

    git对于大家应该都不太陌生,熟练使用git已经成为程序员的一项基本技能,尽管在工作中有诸如 Sourcetree这样牛X的客户端工具,使得合并代码变的很方便。但找工作面试和一些需彰显个人实力的场景,仍然需要我们掌握足够多的
    的头像 发表于 04-09 16:42 1504次阅读

    Git高效命令的使用技巧

    今天浩道跟大家分享关于Git高效命令的硬核干货,掌握这些技巧,使你事半功倍!
    的头像 发表于 02-28 16:41 888次阅读

    git rebase与相关git merge命令比较

    。 #概念     首先要理解的是git rebase和git merge解决了同样的问题。这两个命令都旨在将更改从一个分支集成到另一个分支 - 它们只是以不同的方式进行。试想一下当你开始在专用分支中开发新功能时另一个团队成员以
    的头像 发表于 05-26 16:22 806次阅读
    <b class='flag-5'>git</b> rebase与相关<b class='flag-5'>git</b> merge<b class='flag-5'>命令</b>比较

    git命令和参数

        不知道大家平时都是怎么去学习git的,要记忆那么多的命令和参数,我个人是不推荐死记硬背的,以往经验证明卷的越疯狂忘的也越快! 其实简单的理解工作原理和熟练运用少部分常用命令,日常开发问题不大
    的头像 发表于 05-31 14:22 520次阅读

    Git命令的综合手册怎么找

    config 命令的手册,执行 $ git help config 这些命令很棒,因为你随时随地可以使用而无需联网。 如果你不需要全面的手册,只需要可用选项的快速参考,那么可以 -
    的头像 发表于 07-22 11:02 613次阅读

    git如何记录每次更新到仓库

    可以 git status 命令查看哪些文件处于什么状态。如果在克隆仓库后立即使用此命令,会看到类似这样的输出: $ git statu
    的头像 发表于 07-22 11:11 506次阅读
    <b class='flag-5'>git</b>如何<b class='flag-5'>记录</b>每次更新到仓库

    git基本操作命令用法

    基本用法 上面的四条命令在工作目录、暂存目录(也叫做索引)和仓库之间复制文件。 git add files把当前文件放入暂存区域。 git commit给暂存区域生成快照并提交。 git
    的头像 发表于 09-13 16:29 738次阅读
    <b class='flag-5'>git</b>基本操作<b class='flag-5'>命令</b>用法