asp手机网站,wap网站自动,网站建设要代码有什么好处,山西太原建站哪家强上一篇主要针对使用git add和git commit两个指令提交文件到本地版本库做了详细的介绍#xff0c;其实提交文件到版本库无非就是两个步骤#xff0c;先将文件添加到暂存区#xff0c;所有要提交的文件全部添加完毕#xff0c;统一提交到版本库。那我们每一次提交都会生成一个… 上一篇主要针对使用git add和git commit两个指令提交文件到本地版本库做了详细的介绍其实提交文件到版本库无非就是两个步骤先将文件添加到暂存区所有要提交的文件全部添加完毕统一提交到版本库。那我们每一次提交都会生成一个不同的版本我们如何对这些不同的版本进行管理呢本篇文章主要谈谈版本的管理比如版本回滚修改的管理删除等。暂存区文件删除我们都清楚我们要更新版本库首先git add一个文件这时候这个文件所做的修改就会添加到暂存区但是这时候如果我们发现添加错文件了我们如何删除暂存区的文件呢这里一般来说有三种情况存在暂存区存在一个文件hello.txt,我们需要从暂存区删除这个文件但是工作区文件不能删除。暂存区存在一个文件hello.txt,我们需要从暂存区删除这个文件并且同时删除工作区文件。我们暂存区有多个文件需要同时清空整个暂存区。只清除暂存区的某个文件在git暂存区有多个文件如果我们只想要从暂存区删除其中一个文件那我们可以使用命令git rm --cached hello.txt清空暂存区文件并且删除工作目录对应文件在git暂存区有多个文件如果我们只想要从暂存区删除其中一个文件并且将这个文件同时从工作目录删除那我们可以使用命令git rm -f hello.txt清空暂存区清空暂存区所有缓存文件可以删除版本库的index文件就可以达到清空暂存区的目的可以使用命令rm .git/index我简单的录制了一个gif图演示清除缓存区的操作暂存区文件修改比如我们有一个hello.txt文件第一次插入了一句话git add添加到暂存区然后我们不使用git commit提交而是选择继续更改工作区的hello.txt这时候就导致暂存区的hello.txt文件和工作区的hello.txt不一致那这时候选择git commit提交究竟提交的是暂存区的旧版本还是工作区的新版本呢我们上一篇其实讲过一般情况下使用git commit -m只会提交暂存区的文件所以说一般情况下就算工作区文件修改了也一样只会提交暂存区的旧版本但是为何说一般情况呢因为我们上篇也提到了git commit -a -m命令使用这个命令如果之前我们已经将hello.txt文件提交到版本库代表这个文件已经被Git进行版本管理这时候使用git commit -a -m命令则会将工作区做了修改但是没有添加到暂存区的文件先添加到暂存区再提交两步操作合二为一但是我们一般情况不建议使用这个命令特别新手更是应该分成两步操作确保不会出现问题。我也简单的录制了一个gif简单解析下这个过程可以看到我先将文件添加到暂存区然后修改文件新增一句话再次使用git status命令查看暂存区状态提示hello.txt文件被修改这时候我选择git commit提交再次查看状态一样提示hello.txt文件被修改所以证明我们工作区所做的修改并没有被真正提交提交的一样是暂存区的旧版本。撤销修改有朋友看到这个标题撤销修改会纳闷撤销修改不就是将文件从暂存区删除刚才已经提到过了但是如果我们需要撤销工作区的修改呢也就是将hello.txt撤销修改回退到上一次提交的版本如何做呢实际上我们git add后使用git status命令$ git statusOn branch masterChanges to be committed: (use git restore --staged ... to unstage) modified: hello.txtUntracked files: (use git add ... to include in what will be committed) project/ scoreInfo.txt可以看到提示我们使用git restore --satged hello.txt可以从暂存区撤销这个文件我们执行完这个命令再次执行git status$ git statusOn branch masterChanges not staged for commit: (use git add ... to update what will be committed) (use git restore ... to discard changes in working directory) modified: hello.txtUntracked files: (use git add ... to include in what will be committed) project/ scoreInfo.txt可以看到再次提示可以使用git restore hello.txt撤销工作区的修改回退到上一次提交的版本再次使用这个命令你个发现我们刚才工作区所做的修改果然全部丢失了。那如果我们想要放弃暂存区的修改并且同时回退工作区文件的修改执行两次命令固然没问题但是这时候我们可以使用一个命令直接实现git checkout -- hello.txt使用这个命令一般有两种可能hello.txt文件修改已经添加到暂存区使用这个命令则会从暂存区删除hello.txt并且工作区文件版本同时回退。第二种可能文件工作区做了下盖还未添加到暂存区则直接回退工作区版本所以使用这个命令可以直接将刚才的两个命令合二为一。版本回退刚才对版本做修改一直都是针对工作区和暂存区那如果我们工作区版本修改出问题了废掉了我们想要将版本回退到版本库某一个版本如何实现呢首先我们需要先查看目前提交了几个版本这时候可以使用git log查看不同版本的摘要信息可以看到我们一共提交了三次修改生成了3个commit_id我们可以看到每一次提交的备注然后找到我们需要回退版本的commit_id取到了commit_id之后我们就可以实现版本回退使用命令git reset --hard HEAD^使用这条命令可以成功将版本回退到上一个版本比如我们要回退三个版本之前我们可以使用这个命令你个连续执行三次但是如果十个百个版本呢实际上上面的命令完整是git reset --hard commit_id也就是我们只需要传对应版本的commit_id就可以实现版本回退到对应的版本而要查询旧版本的commit_id刚才说过了使用git log就可以实现。我们可以看到我是用命令回退到上一个版本再次git log查看版本log,发现我刚才的版本由于回退丢失了如果我版本回退后悔了要如何恢复到刚才的新版本呢Git还提供了一个记录所有历史的命令git reflog我们可以使用git reflog查看所有版本历史最后使用git reset指定刚才的commit_id进行恢复。可以看到版本成功恢复到刚才的新版本了所以使用git loggit refloggit reset我们就可以在所有版本来回穿梭不用担心回退导致版本丢失的问题。通过本篇文章讲到的命令基本可以满足工作中对于版本库管理的一般要求了。下一篇开始将本地仓库接入远程仓库实现将项目推送到第三方远程仓库存储比如codding码云GitHub等。欢迎关注公众号程序猿周先森。查看更多精彩文章。推荐阅读git入门篇(1)--初识Gitgit入门篇(2)--Git的安装git入门篇(3)--更新文件到版本库