git 还原到某次commit】的更多相关文章

不可逆提交 一,reset 1.git log查看提交记录 git log 2.选择某次提交的commit ID,ctrl+c复制提交ID 3.使用git reset –hard 还原到某一次提交 git reset --hard commit ID 二,checkout 1.git checkout commit ID ,这个命令达到的效果和git reset –hard一样都是不可逆提交 git checkout commit ID1可逆提交 一,checkout 1.git checkou…
1.使用方法及其作用 git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作(操作的对象是commit).例如,假设我们有个稳定版本的分支,叫v2.0,另外还有个开发版本的分支v3.0,我们不能直接把两个分支合并,这样会导致稳定版本混乱,但是又想增加一个v3.0中的功能到v2.0中,这里就可以使用cherry-pick了. 就是对已经存在的commit 进行 再次提交: 使用方法如下: git cherry-pick <commit id> 查询commit…
svn迁移到git仓库并保留commit历史记录 最近在做svn迁移到gitlab,由于之前一直是由svn做版本控制.最简单的方式是将svn的内容export出来,然后添加到gitlab即可.但是,如果svn用的时间很长了,而且很多commit,我们希望保存svn commit的信息以便做版本的控制和比较.幸好git提供了相应的解决办法. 前提 已安装git 已安装gitlab 迁移 1.环境准备: yum install -y git-svn 2.svn账号与git账号映射,users.txt…
git 对比两个commit 之间的差异 比较两个版本之间的差异 git diff commit-id-1 commit-id-2 > d:/diff.txt 结果文件diff.txt中: "-"号开头的表示 commit-id-2 相对 commit-id-1 减少了的内容. "+"号开头的表示 commit-id-2 相对 commit-id-1 增加了的内容.…
合并commit的做法一般用在pull request的时候,把开发同一功能时的所有琐碎的commit合并到一个(假装自己的代码是高质量代码(手动滑稽)).主要使用的命令是git rebase 或者git reset,这两个命令的区别可以看这里,一般推荐用git rebase,因为commit的历史能保存下来. 1. git rebase 首先用git log查看commit历史确定需要操作的commit,比如: commit 0bca654809387dc226cfc4ff872f656018…
原文地址:http://platinhom.github.io/2016/01/02/git-combine_commit/ 有时commit多了看着会不爽.所以想合并掉一些commit. 这里是最简单的情况, 一条线下来N个commit, 合并掉末端的(没有branch出去的). 假设有a,b,c,d四个commit, 从新到旧是a, b, c, d (也就是先d->c->b->a). 四个commit的SHA-1分别是a1,b1,c1,d1. 合并commit只能倒退, 就是说把a合…
使用git rebase合并多次commit 聊下 git rebase -i…
Git missing Change-Id in commit message footer解决方法在Git向服务器提交代码时,出现如下错误missing Change-Id in commit message footer1原因:项目仓库.git/hooks目录下,commit-msg文件缺失.解决方法1:一般在提交代码报错时,会给出相应解决的提示. remote: Processing changes: refs: , done remote: ERROR: missing Change-I…
目录 1.Commit对象介绍 2.Commit对象说明 3.本地库中对象之间的关系 4.总结 5.练习 6.本文用到的命令总结 1.Commit对象介绍 现在来介绍最后一种Git对象commit对象,也叫提交对象. 提交对象可以理解为是对树对象的一层封装,提交信息包括基于当前暂存区中索引文件生成的tree对象,还有包含了提交时间,提交者信息,作者信息,以及提交备注等内容,更重要的是里面还包含了父提交的ID,由此就可以形成Git提交的有向无环图.(是链式的关系,把所有commit对象关联起来)…
From : http://dmouse.iteye.com/blog/1797267 git 的错误操作,导致丢失了重要的commit,真是痛不欲生: 最后通过git神器终于找回了丢失的commit,但是需要总结和反思的地方有一些,同时需要加深git的学习,特献上本文以供参考 执行git reset --hard HEAD~1 ,删除了commit3,但是发现reset错了,晕菜了…… 还好有后悔药(感叹git的强大啊,神马意外情况都考虑到了)满血恢复commit3,执行如下步骤: git r…
How do I create a new git branch from an old commit? git checkout -b justin a9c146a09505837ec03b This will create the new branch and check it out. git branch justin a9c146a09505837ec03b This creates the branch without checking it out.…
当前有四个commit,现在要将四个commit合并为一个,可以使用git rebase -i HEAD~{这里是要合并的commit数量} 如 git rebase -i HEAD~4 ,即为合并最新的四个Commit,运行git reabse -i HEAD~4后,会出现如下界面 按照图中Commands中的提示操作,将commit b,c,d前面的pick改为s,这里我们将commit a前面的pick改为r,代表使用这个commit,并修改commit message 修改完后保存修改,…
将多次commit合并,只保留一次提交历史. PS:在我练习的时候,将一个文件的代码做了多次修改,而且每次修改都给提交了,这几次改动的目的都一样,比如说修改RADEME.md,但是每次改动的只是一个小小的代码,但是提交历史上的显示看着会很乱,所以需要合并之前的多次提交历史. 1.首先使用git log查看一下提交历史[--oneline作用是将每个提交放在一行显示] 这样在git中看到的是4次提交(更改txt),有点冗余,需要做的是将4次commit合并为一次 2. git 压缩  git re…
今天用git pull来更新代码,遇到了下面的问题: error: Your local changes to the following files would be overwritten by merge: xxx/xxx/xxx.java Please, commit your changes or stash them before you can merge. Aborting 提示已经很友好了,从网友处得到的答案直接帮我解决问题. 1.stash 通常遇到这个问题,你可以直接com…
在使用Git的过程中,有时候会因为一些误操作,比如reset.rebase.merge等.特别是在Commit之后又执行了git reset --hard HEAD强制回滚本地记录以及文件到服务器版本,导致本地做的修改全部恢复到Git当前分支的服务器版本,同时自己的Commmit记录也消失了.碰到这种情况,不要慌,我们在Git上做的任何操作都只是在原来之前的操作上做修改,并且会被记录下来保存,也就是说无论你做了什么,对于Git来说都可以进行回滚操作. 找回Commit 通过以下例子来了解下具体怎…
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD. 把文件往Git版本库里添加的时候,是分两步执行的: 1.用git add把文件添加进去,实际上就是把文件修改添加到暂存区: 2.用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支. 因为我们创建Git版本库时,Git自动为我…
更新好本地代码后,git fetch, 接着合并,但是git rebase 不行, git status一看,有很多更新的文件. 于是 git add --后,再rebase,还是不行. 注意,rebase之前,如果本地有更新,一定要先commit,才行,否则合并不了.…
1 在当前分支,查看要合并的分支版本号 git log 需要合并的commit版本号 16b7df3aa1e64e00554a8a3c871e59db8cd87b16 2 切换到 指定分支 git checkout develop 3 执行合并指定commit版本到develop分支 get cherry-pick 16b7df3aa1e64e00554a8a3c871e59db8cd87b16…
1. 查看提交历史(最近10个) git log - 2. 回到前面第十个commit,且将后面九个commit提交的内容状态改为未提交 git reset commitID(第十个commit的ID) 3. 提交修改的内容 git add .git commit -m "dev: 将前九个commit合并为一个" 4. 提交到远程分支 $ git push origin change_skin To git@192.168.0.116:rubik-x/rubik-project.gi…
1,查看提交历史,git log 首先你要知道自己想合并的是哪几个提交,可以使用git log命令来查看提交历史,假如最近4条历史如下: commit 3ca6ec340edc66df13423f36f52919dfa3...... commit 1b4056686d1b494a5c86757f9eaed844...... commit 53f244ac8730d33b353bee3b24210b07...... commit 3a4226b4a0b6fa68783b07f1cee7b688..…
有时候改完代码发现改错分支了,而这个时候已经add或者commit了,怎么办,有办法: 1.若果已经add .  了这个时候可以使用git stash命令,具体操作命令如下: (1) > git stash > git checkout targetbranch > git stash pop > git add . > git commit -m xxx 第一步,将修改的代码暂存到stash 第二步,切换到正确的分支 第三步,从stash中取出暂存的代码修改. 至此,对代码…
一次意外吧,本地add并且commit之后拉了别人错误的代码下来,后来本地又需要进行编写测试,无奈只能回推到自己刚刚commit过的代码,但是git命令除了拉去提交等其他的不是很熟悉,在度娘之后也遇到了一些坑,最终还是解决了:虽然步骤命令很简单,但是也记录一下吧! 第一步:获取记录 git reflog 第二:选择确认回推的版本 git reset --hard 0p253g634 0p253g634是第一步每一个commit信息前面都有的版本号信息.…
When you accidentally committed some changes to your branch you have various possibilities to “undo” that operation and add some more changes. One is to use git amend to change the commit message or add new files. But what we want to take out all of…
总结:更新代码前一定要先将本地修改的文件存到本地git仓库.今天脑残直接更新了远程仓库代码导入今天写的代码...... @[git|commit|reflog] 在使用Git的过程中,有时候会因为一些误操作,比如reset.rebase.merge等.特别是在Commit之后又执行了git reset --hard HEAD强制回滚本地记录以及文件到服务器版本,导致本地做的修改全部恢复到Git当前分支的服务器版本,同时自己的Commmit记录也消失了.碰到这种情况,不要慌,我们在Git上做的任何…
git log  newheader(branch1) ^release(branch2) -- branch1 上比branch2多的commit 注意brnach2后面要--…
公司内部原本使用 SVN 进行版本控制,但随着 Github 的流行我个人的代码管理习惯逐渐转变.虽然公司项目并非开源,SVN 所具有的标准 trunk / branches / tags 结构完全够用,使用 Git 仍然有如下优势: 类似 GitHub 的 GitLab 免费管理工具.将代码托管在自己内部服务器上的同时,提供了优美的 web 界面,图形化分支结构,更直观的代码审查,统计.issue 系统.wiki 等功能全面集成. 更方便主程做 code review,控制代码质量.创建主仓库…
问题: 有以下commit: 323udd ede234 6e7s6e 要合并第一个和第二个commit 方法有二: 方法一 使用git rebase -i hash-id,-i表示以交互模式进行commit合并,hash-id指代某个commit,如 git rebase -i 6e7s6e  (这步操作会多出弹出交互窗口进行commit的设置) 方法二 使用git reset --soft hash-id,如下操作: git reset --soft 6e7s6e git commit -m…
git clone XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX git log -5 // 查看最近5个commit 回退命令:$ git reset --hard HEAD^ 回退到上个版本$ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前 $ git reset --hard commit_id 退到/进到 指定commit的sha码 强推到远程: $ git push origin HEAD --force…
修改最近一次的提交说明 1.代码未推送到远程服务器 $ git commit --amend 此指令会打开文本编辑器,第二行就是提交说明,修改完后按 ctrl+x 退出,后面根据提示操作. 2.代码已经推送到远程服务器 $ git commit --amend $ git push <remote> <branch> -f -f:表示强制用本地修改覆盖远程仓库.…
1. 代码回退 首先你要用git log 查看你要回到的那个本版, 然后用 git reset --hard HEAD^ 回退到上个版本 git reset --hard commit_id 退到/进到 指定commit_id 来把你的本地代码回到你复制的某个版本上如果你要吧回退的某个版本提交的远程的话 git push origin HEAD --force 当你回滚之后,又后悔了,想恢复到新的版本怎么办? 用git reflog打印你记录你的每一次操作记录 git reflog 可以查看所有…