撤消: git checkout -- 结果: git checkout 将工作目录中的文件更改为 Git 之前保存的状态。...这取决于你到底想要完成什么: • 如果你想恢复项目当时的历史记录,请使用 git reset --hard • 如果你想在工作目录中重新创建一个或多个文件,而不更改历史记录,请使用 git...最后,git checkout 切换到新 feature 分支,你最近的所有工作都完好无损。...你将 *.log 放入 .gitignore 文件中,但它仍然存在 - 你如何告诉 git “撤消”跟踪此文件中的更改?...了文件,Git 将继续注意到该文件中的更改。
commit_id后的所有提交,都去除,并保留修改的代码在本地的区域,也就是Workspace中 小明:啊哈,这样的话我就可以把错误代码修改后再提交了; 但是我已经push到线上仓库的数据怎么办呢?...commit修改全部在index中 将id3 和 id4的修改放到index区(暂存区),也就是add后文件存放的区域,本地当前的修改保留 git reset --mixed 回滚commit_id前的所有提交...太棒了! 后悔药-git checkout 小明:还有最后一个问题: 如果我在一次开发中,发现某个文件修改错误了,想要将文件恢复到刚pull代码时的状态怎么办呢? 洋仔:简单!...,则撤销到版本库中的状态 如果file_name在commit后add过这个文件,则撤销到暂存区的状态,也就是add后的状态 总之,就是让指定的文件回滚到最近的一次git add 或者 git...总结 上述,我们介绍了git reset \ git revert \ git checkout 在版本回滚、重做、撤销修改方面的作用; 可以应用到工作中对 误操作、不满足要求、不满足意愿的commit
取消暂存的文件 接下来的两个小节演示如何操作暂存区域与工作目录中已修改的文件。 这些命令在修改文件状态的同时,也会提示如何撤消操作。...NOTE 虽然在调用时加上 --hard 选项可以令 git reset 成为一个危险的命令(译注:可能导致工作目录中所有当前进度丢失!),但本例中工作目录内的文件并不会被修改。...你该如何方便地撤消修改 - 将它还原成上次提交时的样子(或者刚克隆完的样子,或者刚把它放入工作目录时的样子)? 幸运的是,git status也告诉了你应该如何做。...IMPORTANT 你需要知道 git checkout -- [file] 是一个危险的命令,这很重要。 你对那个文件做的任何修改都会消失 - 你只是拷贝了另一个文件来覆盖它。...记住,在 Git 中任何 已提交的 东西几乎总是可以恢复的。 甚至那些被删除的分支中的提交或使用 --amend 选项覆盖的提交也可以恢复(阅读 数据恢复 了解数据恢复)。
这不是说SVN等不具有该功能,但就目前来看,Git更完善,而且也越来越多地被人们所接受。前途和易用是我一向选择的基准。 在使用中,目前体验到最大的相比SVN的好处有; 分支代码只有一份!...虽然增加了一个过程,却可以防止随意修改导致后期合并出现大问题的风险。 目录更加简洁! 在Git本地仓库根目录,只有一个.git文件,它包含了所有的管理信息。...而SVN想必大家都知道,每个子目录下都有噁心的.svn。这个当需要修改文件冲突等问题时,就需要考虑了。肯定是一个文件简单。...git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。 Ps:记住,多多使用git status 命令,就好比,好记性不如烂笔头。...到想要忽略文件的目录下, $ vim .gitignore 添加如上规则的名字 保存之后,退出,就可以了。
---- 词语 下面列举出来的一些词语,有的我写的是 “推荐”,指两者都是正确的,但更应该使用 “推荐” 中的词语;而有的我写的是 “正确”,指只有这一个才是正确的,而其他写法是错误的。...那么实际中大家是如何使用的呢? Windows 系统和 Office 套件使用的是“撤消”: 撤销恢复 / 撤销重做,撤消恢复 / 撤消重做 正确:恢复。 撤销:Undo。恢复:Redo。...但是,“重做” 的意思真的是 “重复上一步操作”。当你点了 “撤消” 之后,这个 “重做” 按钮会消失,变成 “恢复” 按钮,意思是将刚刚 “撤消” 的操作 “恢复” 回来。...因此,如果只是在 Office 软件里看了一眼就把文案抄过来了,那就会出现 “撤消重做” 这样的误用;实际上应该是 “撤销恢复”。...后续操作指的是“需要提供额外的信息”。例如“保存”直接存成文件,而“另存为”需要提供一个新的文件名。因此“保存”没有省略号而“另存为”则有省略号。
利用永久性的存储介质进行保存,特定的时间将保存的数据进行恢复。 持久化方式:保存分为快照和日志。注意日志保存的是整个操作的过程。 在Redis中两种都有,左边叫做RDB,右边叫做AOF。...每保存一次,会 生成一个rdb文件生成当前的快照信息。 RDBsava指令的相关配置 进入data目录中,查看dump.rdb文件。...-6379.conf 启动redis就可以生效了 然后就可以通过save命令后直接去data目录下查看有没有这个文件 先杀掉这个进程,然后再次启动这个服务,看是否恢复了数据 。...原理是在启动的时候把数据加载了进行恢复 save的工作原理 要注意redis是单线程执行。...第四个快速存储、快速消失的适合存起来。其次恢复这个就不用后台做大规模的重做。如果差一两个,那么激活码就多发一两个也没事。 第五个操作先后顺序的话也适用redis存储。
下载一个项目和它的整个代码历史 git clone [url] 配置 Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。...# 添加指定目录到暂存区,包括子目录 git add [dir] # 添加当前目录的所有文件到暂存区 git add ....branch上的指定文件 # branches/A 上修改了一个文件A.h,新增了一个文件B.h,删除了一个文件C.h。...] [file] # 恢复暂存区的所有文件到工作区 git checkout...HEAD^ 其他 # 生成一个可供发布的压缩包 git archive # 临时保存/恢复现在的状态 git stash git stash pop # svn log -v 类似效果 git log
这个版本库的配置、存储等信息会被保存到.git 文件夹中 # 初始化当前项目 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-name] #...在指定目录创建一个空的 Git 仓库。...$ git init --bare # 下载一个项目和它的整个代码历史 # 这个命令就是将一个版本库拷贝到另一个目录中,同时也将分支都拷贝到新的版本库中。...如果你不使用 git add 将文件添加进去,那么这些文件也不会添加到之后的提交之中 # 添加一个文件 $ git add test.js # 添加一个子目录中的文件 $ git add /path/...git reset # 使 staging 区域恢复到上次提交时的状态,覆盖现在的工作目录 $ git reset --hard # 将当前分支恢复到某次提交,不改变现在的工作目录 # 在工作目录中所有的改变仍然存在
2.集中版本控制 所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改,所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题...而且,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据 ?...由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用 ?...Git工作流程 1.在工作目录中添加、修改文件; 2.将需要进行版本管理的文件放入暂存区域 3.将暂存区域的文件提交到版本仓库 因此,git管理的文件有三种状态:已修改(modified),已暂存(staged...忽略文件 不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等在主目录下建立".gitignore"文件,此文件有如下规则: 1.忽略文件中的空行或以井号(#)开始的行将会被忽略
,再次切回到dev分支,从堆栈中恢复刚刚保存的内容。...命令 将所有未提交的修改(工作区和暂存区)保存至堆栈中,可用于后续恢复当前工作目录。 试验项目目录: LICENSE test 1....HEAD is now at 454104b Initial commit 注:如何该文件是新添加的,需要git add先添加到暂存区。...在 Git 中任何 commit 的东西几乎总是可以恢复的,那些被删除的分支中的提交或使用 –amend 选项覆盖的提交也可以恢复 场景: $ git status # On branch master...你对那个文件在本地的任何修改都会消失——Git 会用最近提交的版本覆盖掉它。 除非你确实清楚不想要对那个文件的本地修改了,否则请不要使用这个命令。
缺省情况下,git reset会保留工作目录。这样提交是没有了,但是修改内容还在磁盘上。这是一种安全选择,但通常希望一步就撤销提交及修改内容,这就是—hard选项的功能了。...l 如果下网准确恢复项目的历史到某个时间点,用gitreset—hard l 如果希望重建工作目录里的一个或多个文件,让它们恢复到某个时间点的状态,用git checkout ...最后,用git checkout切换到新的feature分支,并且让你最近所有的工作都完好无损。...Ø 然后它reset当前check out的分支到那个共同祖先,在一个临时保存区存放所有之前的提交。...一旦有个文件被加入提交,git就会持续关注该文件的改变。如果你希望从git的追踪对象中删除那个本应忽略的文件,git rm –-cached会从追踪对象中删除它,但让文件在磁盘上保持原封不动。
Git是一个版本控制系统,用来追踪计算机文件的变化的工具,也是一个供多人使用的协同工具。它是一个分布式的版本控制系统,本文将简单介绍如何使用。...每天都在用Git,但很多命令都记不住,一般来说,日常使用只要记住下图 6 个命令,就可以了。但是熟练使用,恐怕要记住 60~100 个命令。 ? 下面是我整理的常用 Git 命令清单。....gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。...# 添加指定目录到暂存区,包括子目录 $ git add [dir] # 添加当前目录的所有文件到暂存区 $ git add ....[commit] [file] # 恢复上一个 commit 的所有文件到工作区 $ git checkout
大家好,又见面了,我是全栈君。 一....git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。...此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。...1. stash当前修改 git stash会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。...: 在工作目录中新的文件(untracked files) 被忽略的文件(ignored files) git stash命令提供了参数用于缓存上面两种类型的文件。
仓库区/本地仓库 工作区有一个.git目录,其实这个不是工作区,是Git的版本库,存储了Git仓库的所有版本信息 ? ?...暂存区 暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。 有时候也被称作“索引”, 不过一般说法还是叫暂存区域。...$ git stash list # 恢复工作进度到工作区,此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash...1.2.4、提交/推送代码 在IDEA中开发好自己的代码之后如何提交到远程仓库呢?右键项目-->Git ?...确认了文件之后,在输入框输入这次更新的内容,然后点击打勾就可以保存这一次更新了 (对应 git commit 命令) 如果当前所有的 Changes 都要 commit ,那可以直接输入上传的信息并且打勾就可以快速
大家好,又见面了,我是全栈君。...git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。...git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。...git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。 git stash clear: 清空Git栈。...此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件...理解工作区与暂存区的区别? 工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。...如上:一般情况下,可以直接在文件目录中把文件删了,或者使用如上rm命令:rm b.txt ,如果我想彻底从版本库中删掉了此文件的话,可以再执行commit命令 提交掉,现在目录是这样的, ?...只要没有commit之前,如果我想在版本库中恢复此文件如何操作呢? 可以使用如下命令 git checkout -- b.txt,如下所示: ? 再来看看我们testgit目录,添加了3个文件了。...接着在我本地目录下 生成testgit2目录了,如下所示: ? ▍创建与合并分支 在 版本回填退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。
$ git clone [url] 设置用户信息 Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置) # 设置提交代码时的用户信息 $ git config...... # 添加指定目录到暂存区,包括子目录 $ git add [dir] # 添加当前目录的所有文件到暂存区 $ git add . # 删除工作区文件,并且将这次删除放入暂存区 $ git rm...# 将文件从暂存转成未暂存,从版本库中删除,但不删除工作目录的该文件,即文件恢复成不追踪的状态 $ git rm --cached file 代码提交 git的提交分为两个步骤: 暂存变更:add作用是把新文件或者文件新的改动添加到一个暂存区...远程同步 # 从远程仓库中抓取和拉取, 它并不会自动合并或修改你当前的工作,要手动合并入你的工作 $ git fetch [remote] # 列出所有远程仓库 $ git remote # 详细列出所有远程仓库...和后面url的映射,这些信息保存在.git/config文件的[remote "origin"]端中。
领取专属 10元无门槛券
手把手带您无忧上云