git 修改已提交的内容
来源:互联网 发布:遇害求救 知乎 编辑:程序博客网 时间:2024/05/13 13:46
最近发现项目的提交信息(commit message)描述不正确,对于有强迫症的人果断不能忍,必须修改掉。于是上网查了下相关解决方法,整理以备忘。以下方法已亲自测试,可放心使用。
一.修改最近一次提交
这是最常见的一种场景,往往刚刚提交后最容易发现问题。
方法一:用commit –amend
这种方法不仅可以修改commit message,也可以修改提交内容。这种方式在还没有推送到远端的情况下可以比较方便的保持原有的Change-Id,推荐使用(若已经推送到远端,Change-Id则会修改掉)。
#修改需要修改的地方(只是修改commit message就不用做)git add . #这一步如果只是修改commit message不用输入git commit --amend#输入修改后的commit message,保存git push <remote> <branch> -f #若还没有推送到远端,不用输入
方法二:用reset后修改
这种方法与上面方法基本一致,也可以修改提交内容和commit message。这种方式在还没有推送到远端的情况下也可以比较方便的保持原有的Change-Id,(若已经推送到远端,Change-Id则会修改掉)。
git reset HEAD^#修改需要修改的地方(只是修改commit message就不用做)git add . #这一步如果只是修改commit message不用输入git commit -m "new commit message" #或者git commit -c ORIG_HEADgit push <remote> <branch> -f #若还没有推送到远端,不用输入
方法三:提交到了错误的分支上的处理
# 取消最新的提交,然后保留现场原状git reset HEAD~ --softgit stash
# 切换到正确的分支git checkout name-of-the-correct-branchgit stash popgit add . # 或添加特定文件git commit -m "你的提交说明"
# 现在你已经提交到正确的分支上了
遇到这种情况,很多人会说用cherry-pick(摘樱桃),像下面这样。不过你自己看吧,哪个舒服用哪个。
git checkout name-of-the-correct-branch# 把主分支上的最新提交摘过来,嘻嘻~~git cherry-pick master# 再删掉主分支上的最新提交git checkout mastergit reset HEAD~ --hard
二.修改很久之前的一次提交
1.查看修改
git rebase -i master~1 #最后一次git rebase -i master~5 #最后五次git rebase -i HEAD~3 #当前版本的倒数第三次状态git rebase -i 32e0a87f #指定的SHA位置
2.显示结果如下,修改 pick 为 edit ,并 :wq 保存退出
pick 92b495b 2009-08-08: ×××××××# Rebase 9ef2b1f..92b495b onto 9ef2b1f## Commands:# pick = use commit# edit = use commit, but stop for amending //改上面的 pick 为 edit# squash = use commit, but meld into previous commit## If you remove a line here THAT COMMIT WILL BE LOST.# However, if you remove everything, the rebase will be aborted.#
3.命令行显示:
Stopped at e35b8f3… reflog branch first commit
You can amend the commit now, withgit commit –amend
Once you are satisfied with your changes, run
git rebase –continue
#修改需要修改的地方(只是修改commit message就不用做)git add . #这一步如果只是修改commit message不用输入git commit --amend #输入修改后的commit message,保存
4.使用 git rebase –continue 完成操作
git rebase --continue
5.推送到远端(若还没有推送到远端,不用处理)
git push <remote> <branch> -f
阅读全文
0 0
- git 修改已提交的内容
- git 修改已提交的注释
- git修改提交的注释内容
- git修改前一次提交的内容
- 修改git已提交的的author和email
- 修改git已提交的的author和email
- 修改git全部已提交的用户名和邮箱
- 忽略不提交git中已修改入库的文件
- 在git 中修改之前的提交内容
- 在git 中修改之前的提交内容
- 在git 中修改之前的提交内容
- Git 查询某次历史提交的修改内容
- linux git 显示某次提交的中修改内容
- Git如何修改已提交Change
- git学习------>如何修改git已提交的记录中的Author和Email?
- svn重设日志内容 及 如何修改SVN已提交项目的message log
- 【工作笔记0023】修改已提交的 git comments 的作者信息(Changing author info)
- git使用:如何进行版本回退或只是修改已提交的commit
- Thinkphp5学习(14)读取器和修改器
- Excel应用-人生格子(30*30)的绘制
- Android 常用控件(二)
- ViewPager实现图片无限轮播(下)
- hdu 4857 逃生 反向拓扑排序
- git 修改已提交的内容
- windows里,通过vnc连接Ubuntu主机的最佳体验
- 一般性假币称重鉴别问题
- Linux例行性工作之系统配置文件(用户级crontab -e与系统级/etc/crontab)
- windows 安装scipy
- 是夜 到此
- sizeof()与strlen()的区别 memcpy memmove区别和实现
- 求两个排序数组的中位数
- An easy problem 【枚举 】