git下载历史版本 git下载历史版本
Git从版本历史上下载了以下文字资料,是边肖为大家收集整理的。让我们快速看看他们!
1.1.git获取版本历史的几种方法
我们简单描述一个例子:a)初始化有两个文件file1.txt和file2.txt1,用于初始化:git init git status git add . git MIT-m“init version”2,file1.txt在主分支上修改。并提交操作:git add file1.txt gimit-m " change file 1 " 3,然后新建一个branch banana并切换到banana branch操作:git branch banana git检出banana 4,修改file 1 . txt和file2.txt,提交。
操作:git add file 1 . txt file 2 . txt git MIT-m“换成香蕉”此时我们可以进入gitk,查看当前版本。如下图:git-0015,然后切换到主分支,修改file2.txt,提交。
操作:git签出master git addfile2.txt gitmit-m“按master更改”,输入gitk检查当前版本,如下图:git-002b)如果发现问题,我们需要检查版本历史。现在发现当前版本有问题,无法提交到版本库。1.我们需要从麻省理工学院回来。然后进入:gitreset-softHEAD解释,HEAD是当前分支的最新版本。
表示父节点。当前节点的父节点是最后提交的版本。
即标有“变更文件1”的版本。为什么不“香蕉换”?分支不同。"
“按香蕉换”是香蕉枝的最新代码,与主枝不同。此时,进入git状态,看是否显示file2.txt已经修改,没有提交。
2.我们需要从git add返回并仔细查看。我们发现file2.txt确实写错了,需要回到git add之前的状态。回车:git reset -q file2.txt此时,file2.txt回到解放前。
使用git状态检查file2.txt是否处于“变更未为mit暂存”状态。3.当我们回到没有做的情况下,最终确定最后修改的file2.txt是无用的代码,需要丢弃。
注意,这个操作无法恢复。Git reset -硬命令,没有具体的文件可以指定。
是清除所有当前的修改并将它们恢复到上次提交的版本。此时,用gitk检查:git-003已经完全还原到“变更文件1”的版本。
4.直接回到某个版本。现在我们转到香蕉枝。Git结账香蕉然后用gitk看看。
可见我们之前的操作对香蕉枝完全没有影响。现在我们需要将香蕉分支恢复到原来的状态,但是当前更改的代码仍然需要保留。
我们可以看到init版本是当前版本的父节点的父节点。我们可以这样做:git reset-softhead然后用gitk看看:最新版本的git-004变成了init版本。
所有更改都处于添加未提交状态。5.最后获取最新代码。
我们同时删除了file1.txt和file2.txt,我们需要从版本库中获取最新的代码。
很简单:如果git checkout master是从banana分支的最新代码,我们知道如何查看版本分支,以及如何恢复到以前的版本。
2.如何使用Git将代码还原到历史版本
有时,在一些特殊情况下,我们需要将代码恢复到历史提交的版本。
而且这个历史投稿版本距离最新投稿还有很长一段时间。例如,我希望将以下仓库提交恢复到最后一次提交。
当然我可以一次又一次的还原,但是有没有更快更简单的方法呢?暴力方式如果你的仓库是自己用的,可以用git reset - hard恢复到指定提交,然后用git push -f强制更新远程分支指针。为了确保万一需要检索历史提交,我们可以首先标记它进行备份。
对于刚才的例子,要执行的命令有://backup当前分支到backup _ MIT git tag backup _ MIT git push origin backup _ MIT//reset源分支git reset-hard23801b2//强制push更新远程分支git push origin source的温和方式-f,如果你的仓库里有很多人在一起工作,那么你就会用别人的本地代码库来混淆,所以你只能新建一个提交,而在这个新的提交中,所有你想取消的提交都会被反过来,那么具体应该怎么做呢?方法如下:首先,就像刚才一样,使用gitreset-hard23801b2将代码切换到目标提交id。接下来,使用git reset - soft origin/source命令将当前代码切换回最新提交的代码。
执行以上两个步骤后,您的仓库仍然是最新提交的,但是工作区变成了历史提交。这时候可以用git add和git mit。最后的效果是这样的:但是经过念千的提醒,这个方法需要保证重置时没有人重新提交,如果是这样的话会取消其他人的提交。
所以挺危险的,慎用。虽然很少使用,但是了解它的原理会帮助你理解Git的工作区、暂存区和版本库中指针操作的含义,希望对你有用。
3.3.git代码上传后,如何回滚版本
总有一天你会遇到以下问题。
改完代码,赶紧提交。如果线上有问题,怎么办?赶紧滚回去。
修改代码测试后没有问题,但是发现你的修改已经影响了之前正常运行的代码,必须回滚。
这些问题在开发中是很常见的,所以取消提交、回滚甚至返回到之前版本的git都是很重要的。
大致可以分为以下两种情况:
1.没有推力
这发生在您的本地代码仓库中。也许在你添加了add,mit之后,你发现代码有问题。您可以取消提交并使用以下命令
重新设定
git重置[ -软| -混合| -硬
上面有三种常见类型
-混合
会保留源代码,只是把git mit和索引信息回滚到某个版本。
Git重置默认值为混合模式
Git重置-混合相当于git重置
-柔软
保留源代码,只将麻省理工学院的信息回滚到某个版本。它不涉及索引的回滚。如果你还需要提交,你可以直接去麻省理工学院。
-努力
源代码也会回滚到某个版本,mit和index都会回滚到某个版本。
当然也有人在推码后使用reset-hard;在某个版本之前重试代码,但是会有问题。你的在线代码没变,MIT和Index都没变。当您修改本地代码并提交时,您会发现权限有冲突。..
因此,在这种情况下,您应该使用以下方法
2.一直在推
对于已经推送到在线仓库的代码,在回滚本地代码的同时,也要将在线代码回滚到指定的版本。线上线下代码一致。您需要使用以下命令
恢复
Git revert用于反向提交,执行evert命令时工作树必须干净。
Git revert使用新的提交来消除历史提交所做的任何更改。
还原后,您的本地代码将回滚到指定的版本历史。此时可以通过git push更新在线代码。
要使用revert,您需要先找到您想要回滚的版本的唯一麻省理工学院识别码,可以在git日志中查看,也可以在adgit构建的web环境的历史提交记录中查看。
git revert c 011 e B3 c 20 ba 6 FB 38 cc 94 Fe 5 A8 DDA 366 a 3990 c 61
通常,前几个就可以了
git revert c011eb3
Git revert是用一个新的mit来回滚动以前的mit,git reset是直接删除指定的MIT
看起来效果是一样的,其实完全不一样。
首先:
正如我们上面所说的,如果你已经推送至在线代码库并重置删除了指定的mit,你的git推送可能会导致很多冲突,但revert不会。
第二:
如果将来需要合并现有分支和历史分支,则重置恢复部分的代码仍会出现在历史分支中,但在还原方向提交的mit不会出现在历史分支中。
第三:
在正常麻省理工学院历史中,reset删除指定的麻省理工学院,然后HEAD向后移动,而revert在正常麻省理工学院历史中再次是麻省理工学院,但它只是反向提交,他的HEAD继续向前移动。
4.4.git如何创建本地版本仓库
众所周知,使用git的好处是可以很好的控制项目版本。
我们可以清楚地看到哪些代码被修改了,我们可以将其恢复到我们想要的版本。
在使用中,我们通常先将修改后的代码提交给本地仓库,然后再推送到远程仓库。
如果不需要推送到远程仓库,只需要在本地仓库管理呢?
最近做一个项目,需要建立本地仓库。
于是我查了网上的资料,找到了一个建立本地git仓库的方法。以下是简要说明:
1.在项目的根目录下,使用git init命令创建一个版本库。执行完之后,你会发现还有一个。根目录下的git目录。
它包含许多空文件。例如:
配置#项目的配置信息
描述#项目的描述信息
HEAD #项目当前位于哪个分支的信息
挂钩/ #默认“挂钩”脚本文件
Index # index文件,git添加后,临时存储这里要添加的项目
info/ #中有一个排除文件,它指定了在此项目中要忽略的文件编号
日志/ #每个参考文献的历史信息
Objects/ #是一个非常重要的目录,它存储Git数据对象
2.成功创建本地仓库后,使用git add命令。将当前目录中的所有文件添加到暂存区。
3.使用git mit命令将文件提交到本地仓库。
至此,本地仓库已经成功创建。当本地源文件改变时,只需要添加并提交到本地仓库。
使用git日志命令,您可以看到提交了什么。
你甚至可以恢复到你想要恢复的版本,这样你就不用担心不可恢复的代码了。
文章评论