首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

git版本库代码回退的技巧

在git中,HEAD指针指向我们当前分支的最后一次提交。比如我们提交过三个版本,那么此时HEAD指针位置如下图 git版本回退会变更HEAD指针的位置,本文中,我们分别介绍两种代码回退的方式。...--mixed 为默认,可以不用带该参数,用于重置版本库中的文件与某一次的提交(commit)保持一致,工作区文件内容保持不变。...上面几个参数可以存在以下区别 –mixed(默认):将版本库的代码重置到某个版本,将重置的更改留在工作区中。 这个模式只是重置git版本库中的版本,工作区中的代码不变。...–soft:将版本库的代码重置到某个版本,将重置的更改保存在暂存区。 这个模式在重置git版本的同时,会改变工作区中代码,将变更的内容放在暂存区。如果我们确定重置,提交代码生成新版本即可。...git checkout [被删除的文件或文件夹] –hard:将版本库的代码重置到某个版本,删除变更的记录,一无所有。

1.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    配置Git并克隆GitHub代码的方法

    本文介绍分布式开源版本控制系统Git的下载、安装,并基于Git实现克隆GitHub中项目代码的方法。...Git是一款开源软件,因此我们直接在Git的官方下载地址(https://git-scm.com/downloads)下载最新版本的Git即可。...其中,在下图所示的位置选择适合我们操作系统的Git版本。   随后,选择下图红色方框内的内容,下载最新版的Git。   ...例如,假设我们需要基于Git从GitHub中复制C++包管理器vcpkg的相关代码,就可以在Windows PowerShell中,输入以下语句。...其中,如果大家在Git使用过程中出现错误代码为10054的错误,如下图所示(下图中我将microsoft这个单词打错了,大家理解即可),则一般是因为网络出现问题导致的;此时可以重新尝试,如果有代理软件需要关闭代理

    30030

    Git 入门指南:如何高效管理你的代码库

    主要特点和概念: 分布式版本控制 分布式:每个使用 Git 的开发者都拥有完整的代码库副本,并且可以在本地进行操作,不需要依赖中央服务器。...每个提交实际上都是代码库状态的完整快照。这样,不仅能恢复历史版本,还能快速了解代码库的变化。...版本库(Repository):是 Git 存储代码版本历史的地方。每当你执行提交时,Git 会将当前的代码快照保存到版本库中。...将你本地仓库的代码和文件推送到远端仓库(该过程要输入你 gitee 的账号与账号密码) 推送到远端仓库后,我们就可以在 gitee 上查看了。...git push:将本地的更改推送到远程仓库。 git pull:从远程仓库拉取并合并最新的更改。 git merge:将一个分支的更改合并到当前分支。 git branch:列出、创建或删除分支。

    16010

    PHP 的 Git 源码库遭到恶意代码提交

    伪造签名恶意提交代码 被攻击的代码是在预计今年年底发布的 PHP 8.1 开发分支中,这两个恶意提交试图在 PHP 中留下一个远程代码执行的后门:如果字符串以 “zerodium” 开头,就会从 useragent...因为在 Git 这样的源码版本控制系统中,可以在一个提交使用来自本地其他人的签名,然后把伪造的提交上传到远程的 Git 服务器上,这样一来,就会让人觉得这个提交确实是由该签名所有人签署的。...,以后所有修改会直接推送到 GitHub 上,而不再是 git.php.net 服务器上。...目前,PHP 团队正在审查仓库中是否有其他恶意代码。...专业的事情交给专业的人来做 PHP 的 Git 源码库遭到恶意代码提交这件事情说明专业的事情交给专业的人和机构来做比较好,甚至如 PHP 这中牛人非常多的团队,Git 服务器还是会遭到攻击,为了专注自己的服务

    37330

    Git挽救丢失的代码

    昨天晚上头脑一发热,丢失了之前忘记提交的代码,情况如下:     有两个分支master,develop,使用develop作为开发分支,前段时间开发了一些代码在develop上,忘记提交,昨晚头脑发热直接切换到...master目录下,导致无法找到之前开发的未提交的代码,通过在讨论区提问和自己查找资料,最终找回代码,具体操作如下: ?...使用git reflog命令找到我昨天切换分支的日志即cee30a8 HEAD@{3}:checkout: moving from 90ccea197...这行,其中90ccea1...为SHA-1码,...用来唯一的标识一个代码快照,这也就是我要还原回去的代码快照。  ...下次得记得当前分支未提交代码在不提交的情况下切换分支,得使用git stash。     感谢讨论区的朋友的回答

    87150

    git 拉取代码库的项目到本地(window系统)「建议收藏」

    大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说git 拉取代码库的项目到本地(window系统)「建议收藏」,希望能够帮助大家进步!!!...一.下载git工具 先从官网下载git工具 二.拉取远程代码 在本地需要存放项目代码的地方右键点击git bash here 去github上找到自己需要拉取的项目地址,复制 在命令行输入...master中commit的数据上传到了远程绑定的master分支上了,记得写上备注。...上传本地代码到远程分支上 1.修改项目中的代码 2.暂存更改 vscode原本就集成了git代码管理 单个文件可进行放弃更改跟暂存更改操作 点击列表中对应更改的文件的第二个按钮(放弃更改)或者第三个加号按钮...(暂存更改) 3.代码提交 切记提交前下拉取一下代码,不然最后推送会失败的 点击列表上方打钩 填写提交信息 点击更多选项,选择推送即可提交到远程分支上了

    5.4K40

    git从远程分支拉取代码_git更新分支下的代码

    ,但是远程分支存在git push多次,发现关联分支的本地代码不是最新的,只需要在git pull 后面添加origin master 就能获取最新代码。...上述命令表示将本地dev分支推送到远程release/caigou_v1.0分支。...Git冲突 1、stash 通常遇到一个问题就是本地仓库你可以直接commit你的修改,但是我这次不想commit,而又想获取远程仓库的最新代码。看看git stash是如何做的。...git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。...git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。

    2.2K20

    Git 回滚代码的正确姿势git revert 和 git reset 的区别

    并不适合阅读的个人文档。 git revert 和 git reset 的区别 先看图: sourceTree 中 revert 译为提交回滚,作用为忽略你指定的版本,然后提交一个新的版本。...执行上述命令时,这该条commit号之 后(时间作为参考点)的所有commit的修改都会退回到git缓冲区中。使用git status 命令可以在缓冲区中看到这些修改。...而如果加上-–hard参数,则缓冲区中不会存储这些修改,git会直接丢弃这部分内容。可以使用 git push origin HEAD --force 强制将分区内容推送到远程服务器。...代码回退 默认参数 -soft,所有commit的修改都会退回到git缓冲区 参数--hard,所有commit的修改直接丢弃 $ git reset --hard HEAD^ 回退到上个版本...$ git reset --hard commit_id 退到/进到 指定commit_id 推送到远程 $ git push origin HEAD --force 可以吃的后悔药->版本穿梭

    2.6K80

    Git中撤销中间的某次merge代码

    问题 在开发过程中发现分支中间某次merge存在dev代码,需要把这个merge去掉,但不影响后续的提交 解决方案 坑点:网上说用【git revert】来实现,发现里面有个坑点,revert之后,假如想在后续再加入这个...merge分支就不行,因为系统默认你已经合并过了,导致分支代码没法再次合并,超级麻烦 用【git reset】回到出错版本的上一个版本git reset --hard 3c2af5a7 用【git cherry-pick...】把出错版本后面的commit合并进去git cherry-pick 9dba07f4^..32aba548 ##出错版本后的第一个commit直至最新commit或者使用单次合并git cherry-pick...9dba07f4git cherry-pick --continue继续处理下一个分支 如果想中途退出cherry-pick,使用git cherry-pick --abortgit push origin...HEAD:comitName --force 如果在cherry-pick 的过程中出现了冲突 在处理冲突后,使用 合并冲突后,使用强制推送把旧分支进行覆盖 引用: https://www.ruanyifeng.com

    1.6K20

    源代码管理git的使用

    一次, 而git中每次新建或者修改之后都需要重新add ①红色 代表在”工作区“ 为添加之前的颜色 ②绿色 代码在”暂存区“ 添加到暂存区之后的颜色 、注意: git默认没有简写指令 注意: 一般情况下不建议自定义简写指令...文件名 注意: GIt中的版本号是一个”40位“的哈希值, 而SVN中的版本号是一个递增的整数 配置带颜色的log别名 git config --global alias.lg "log --color...----远程仓库---- SVN需要一个单独的服务器 Git不需要: 文件中、U盘中、云上、github、OSChina... 1.新建git远程仓库 git init —bare 注意: 这个仓库仅仅是用于管理代码..., 不参与开发 2.项目经理初始化项目 2.1先克隆一份空得仓库到本地 git clone /Users/apple/Desktop/working/公司远程仓库 2.2忽略不需要加入版本控制器的文件以及文件夹...将代码提交到本地仓库 source conrol—>push 将代码提交到远程仓库 git中默认就会创建一个分支, 这个分支叫做origin/master, 相当于svn中的trunk

    959140

    git导出代码的方法~archive

    问题 如果你用过svn,一定知道svn export,可以用来从代码库中导出一份干净的代码(没有.svn等)。git是否有类似功能呢? git archieve 可以用于将库中代码打包。 1..../output.tar.gz" master 说明: 将master分支打包为output.tar.gz –format指明打包格式,若不指明此项,则根据–output中的文件名推断文件格式。...所以你也可以将上述命令简化为: git archive --output "./output.tar.gz" master 可以使用-l参数获得支持的文件格式列表。.../output.tar.gz" testbr 如果要打包某个commit,只要先使用git log找到相应的commit id, 再使用该commit id打包即可。...注意 打包建议在代码库的根目录下进行,不然会碰到各种问题。比如,如果在master分支的mydir目录下执行 git archive --output ".

    2.1K20

    常用的Git代码托管服务

    常用的Git代码托管服务 前面我们已经知道了Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?...gitHub( 地址:https://github.com/ )是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub 码云(地址: https://gitee.com...使用Git作为代码管理工具,并在此基础上搭建起来的web服务 在码云注册账号 要想使用码云的相关服务,需要注册账号(地址: https://gitee.com/signup ) 登录码云并创建Git...每个Git远程仓库都会对应一个网络地址,可以点击克隆/下载按钮弹出窗口并点击复制按钮获得这个网络地址 我们当前创建的Git远程仓库对应的地址为:https://gitee.com/helloMrZhan...在企业实际开发中,一个项目往往是由多个人共同开发完成的,为了使多个参与者都有权限操作远程仓库,就需要邀请其他项目参与者成为当前仓库的成员。

    1.5K40

    Git中撤销中间的某次merge代码

    问题 在开发过程中发现分支中间某次merge存在dev代码,需要把这个merge去掉,但不影响后续的提交 解决方案 坑点:网上说用【git revert】来实现,发现里面有个坑点,revert之后,假如想在后续再加入这个...merge分支就不行,因为系统默认你已经合并过了,导致分支代码没法再次合并,超级麻烦 用【git reset】回到出错版本的上一个版本 git reset --hard 3c2af5a7 用【git...cherry-pick】把出错版本后面的commit合并进去 git cherry-pick 9dba07f4^..32aba548 ##出错版本后的第一个commit直至最新commit 或者使用单次合并...git cherry-pick 9dba07f4 如果在cherry-pick 的过程中出现了冲突 在处理冲突后,使用 git cherry-pick --continue 继续处理下一个分支 如果想中途退出...cherry-pick,使用 git cherry-pick --abort 合并冲突后,使用强制推送把旧分支进行覆盖 git push origin HEAD:comitName --force 引用

    1.3K10

    Git代码提交的正确姿势

    之前我已经写了一篇关于Git的文章了,里面主要的是介绍了怎么安装和部署到您的项目里面,今天简单的说一下,具体的提交代码的步骤,因为必经安装结束和部署结束是需要使用的,不是拿来看的,ok废话不说,说步骤:...1、首先您的项目是已经属于Git项目了,这个是可以看出来的,例如: ?...这个项目就是属于一个Git项目,每一个文件和文件夹上面都会有一个类似于小盒子的logo。 2、这个时候您是需要更改文件的,不过不要着急,因为这个时候还不是时候,您需要先建一个分支,为什么呢?...简单的说一下,如果您直接在源文件上面改是不是可以的?...是可以的,但是一般的开发都不会是一个人,git也是为团队更好的管理代码出现的,那么如果是很多人时候,这个时候您直接改的源文件,如果别人也动了这个源文件,那么你提交的时候按照谁的来?

    47630

    【消失的代码】Git 合并分支导致代码消失

    尝试检测一下在所有历史记录中,对该文件的处理,用到的命令如下: git log --stat --full-history --simplify-merges -- A/index.js 上述命令将会展示涉及到该文件更改的...即使代码被恢复后再输入 git log 指令,也只会展示恢复代码的那次 commit。 2.2.2....执行以下命令: git log --full-history --simplify-merges -- A/index.js 对比 2.2.3 中的输出结果,可以看到已经没有 Merge branch...而在工蜂(公司内类似 gitlab 的代码管理平台)中,根本就没有记录显示代码被删除。 我们使用 git show 命令来看下该 commit 的更改内容: 结果发现没有显示任何文件更改。...回到丢失代码的项目里,打开 VSCode 的 git 管理模块查看该 commit: 能够看到是修改了很多文件的,其中就有删除 A 页面代码的记录,和我们例子的表现一致。

    4.2K21

    理清代码提交记录--代码管理的git

    如果你们好多个版本,不同的版本对应不同的用户,用户希望他们的代码仓库在他们的服务器而不是你的,怎么办? 千万不要相信那些诸如"你先弄过去,以后代码丢给他们就不管了"的鬼话。...如果你信了,你真的新建一个仓库,把代码推到新仓库上了。当新的需求 "把最新版本合并到xxx的代码上",你就懵逼了,这都不是一个源,怎么合并。一行行代码去查吗? ?...多个远程仓库 git可以添加多个远程地址,最最重要的是只要这些远程仓库的代码从相同的commit分出来的,都可以合并。...只是在push的时候小心,不要把代码推到不该推的仓库就可以了。 发布的时候只保留一个commit记录 一般代码合并的时候都是使用merge直接合并。...当然git还有很多操作可以很好的帮助我们管理代码,还得好好学习。

    91220

    代码管理| 创建自己的私有Cocopods库

    一、创建私有库的索引库 创建索引库文件.gif 创建私有库的索引库,这句话有些绕口,我们分开来看: 1、索引库:存放spec文件的地方,用于索引到代码的位置。...2、私有库:指的是我们真正放置组件代码的地方。 打个比方,索引库就好比指针,私有库就好比对象,指针中存放了对象的地址,通过地址可以找到对象!...https://gitee.com/Qinz_323/Tool.git $ git push -u origin master 2.将组件的代码上传,上一步只上传了模板文件 $ git...见下图: 上传代码.gif 六、更改模板文件相关信息 填写模板文件.gif 我们打开Xcode工程,找到.podspec后缀的文件, 更改s.summary,这个是显示在pod search的简短描述...fangmei s.source中的地址为我们创建组件仓库的地址:https://gitee.com/fangmei/Tool.git 即可!

    1.8K60
    领券