git:多个commit合并提交
学习ror和git有段时间了,但在git comit提交的时候因为需要重新修改code的小bug和小错误,而重复的提交在写commit_message的时候就会很尴尬,总结方法如下:
- 如果在提交前已经进行了错误的commit合并的话执行 git reset (注意:这样会丢失没有提交的修改,并且不会留下任何痕迹)http://blog.sina.com.cn/s/blog_68af3f090100rp5r.html
- #回退所有内容到上一个版本
- git reset HEAD^
- #回退a.py这个文件的版本到上一个版本
- git reset HEAD^ a.py
- #向前回退到第3个版本
- git reset –soft HEAD~3
- #将本地的状态回退到和远程的一样
- git reset –hard origin/master
- #回退到某个版本
- git reset 057d
- #回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit
- git revert HEAD
- 使用 git rebase --abort 用来restore原来的<branch> 并且删除 .git / rebase-apply 文件
- 随后可以使用git log的命令查看自己的commit历史看是否已经恢复到你期望的状态
- 使用git rebase -i HEAD~* 其中* 代表你期望合并的commit的数目,会出现*数目的commit的历史上面的是*条历史中最晚的,即使*条数目多了也没事,只需要在你期望提交的commit下面的commit前面的pick更改成S就行,在终端中修改使用到了nano编辑器,CTRL_O和CTRL_X保存退出
- 然后push到github上( 适用 git push -f origin master 需要谨慎 )
Ubuntu_NANO编辑器操作:
^表示键盘上的ctrl键,^G表示同时按下ctrl和g
(F1)表示按F1键 ,M-表示使用alt+后面的键
^G ==(F1) Invoke the help menu
调用帮助菜单
^X ==(F2) Close currently loaded file/Exit from nano
退出
^O ==(F3) Write the current file to disk == ^O WriteOut
保存
然后回车就保存了
^J ==(F4) Justify the current paragraph
调整当前段落(注意:编辑配置文件的不要用这东西,格式一下就出问题了哦)
^R ==(F5) Insert another file into the current one
插入其他的文件到当前的文件,而且查找文件的时候支持tab
^W ==(F6) Search for text within the editor
查找
^Y ==(F7) Move to the previous screen
上一屏幕
^V == ( F8 ) Move to the next screen
下一屏幕
^K ==(F9) Cut the current line and store it in the cutbuffer
裁减当前一排并保存在缓冲区
^U ==(F10) Uncut from the cutbuffer into the current line
将缓冲区的东西粘贴到此
^C ==(F11) Show the position of the cursor
显示光标位置
^T ==(F12) Invoke the spell checker, if available
调用拼写检查程序
^P Move up one line
向上移动一行
^N Move down one line
向下移动一行
^F Move forward one character
向前移动光标一格
^B Move back one character
向后移动光标一格
^A Move to the beginning of the current line
移动到当前行的开头
^E Move to the end of the current line
移动到当前行的末尾
^L Refresh (redraw) the current screen
刷新当前屏幕
^^ (M-A) Mark text at the current cursor location
标记文本
^D Delete the character under the cursor
删除光标后一个字母
^H Delete the character to the left of the cursor
向左边删一个字母
^I Insert a tab character
插入一个tab值
^\ (F14) (M-R) Replace text within the editor
查找并且替换
^M Insert a carriage return at the cursor position
插入一个回车
^_ (F13) (M-G) Go to a specific line number
跳转到某行
^Space Move forward one word
前进一个单词
M-Space Move backward one word
后退一个单词
M-] Find other bracket
搜索下一个括号
M-< Open previously loaded file
打开先前加载的文件
M-> Open next loaded file
打开下一个加载的文件
M-I Auto indent enable/disable
是否首行缩进
M-Z Suspend enable/disable
是否悬挂
M-X Help mode enable/disable
帮助模式
M-M Mouse support enable/disable
鼠标支持
(F1)表示按F1键 ,M-表示使用alt+后面的键
^G ==(F1) Invoke the help menu
调用帮助菜单
^X ==(F2) Close currently loaded file/Exit from nano
退出
^O ==(F3) Write the current file to disk == ^O WriteOut
保存
然后回车就保存了
^J ==(F4) Justify the current paragraph
调整当前段落(注意:编辑配置文件的不要用这东西,格式一下就出问题了哦)
^R ==(F5) Insert another file into the current one
插入其他的文件到当前的文件,而且查找文件的时候支持tab
^W ==(F6) Search for text within the editor
查找
^Y ==(F7) Move to the previous screen
上一屏幕
^V == ( F8 ) Move to the next screen
下一屏幕
^K ==(F9) Cut the current line and store it in the cutbuffer
裁减当前一排并保存在缓冲区
^U ==(F10) Uncut from the cutbuffer into the current line
将缓冲区的东西粘贴到此
^C ==(F11) Show the position of the cursor
显示光标位置
^T ==(F12) Invoke the spell checker, if available
调用拼写检查程序
^P Move up one line
向上移动一行
^N Move down one line
向下移动一行
^F Move forward one character
向前移动光标一格
^B Move back one character
向后移动光标一格
^A Move to the beginning of the current line
移动到当前行的开头
^E Move to the end of the current line
移动到当前行的末尾
^L Refresh (redraw) the current screen
刷新当前屏幕
^^ (M-A) Mark text at the current cursor location
标记文本
^D Delete the character under the cursor
删除光标后一个字母
^H Delete the character to the left of the cursor
向左边删一个字母
^I Insert a tab character
插入一个tab值
^\ (F14) (M-R) Replace text within the editor
查找并且替换
^M Insert a carriage return at the cursor position
插入一个回车
^_ (F13) (M-G) Go to a specific line number
跳转到某行
^Space Move forward one word
前进一个单词
M-Space Move backward one word
后退一个单词
M-] Find other bracket
搜索下一个括号
M-< Open previously loaded file
打开先前加载的文件
M-> Open next loaded file
打开下一个加载的文件
M-I Auto indent enable/disable
是否首行缩进
M-Z Suspend enable/disable
是否悬挂
M-X Help mode enable/disable
帮助模式
M-M Mouse support enable/disable
鼠标支持
发表评论
-
robots.txt 的作用及用法
2012-01-09 17:19 717http://shandian.biz/162.html -
git rebase 和reset 新的理解
2012-01-09 16:02 0http://ihower.tw/blog/archives/ ... -
Curl 用法
2012-01-09 15:13 801原始链接:http://www.linuxidc.com/Li ... -
Gnome3
2012-01-09 14:06 789Gnome3很但疼啊: 关机按钮:按住Alt 挂起=》 关机 ... -
vim
2012-01-08 21:24 0<!-- saved from url=(0045)ht ... -
Guake Terminal
2012-01-07 19:27 949ubuntu中/bin/bash与/bin/sh,区别较 ... -
修改Terminal的计算机名字
2012-01-03 21:55 0修改/etc/hostname /etc/hosts 两个文 ... -
Terminal is_a_funtion:找不到命令错误
2012-01-03 21:54 882Terminal is_a_funtion:找不到命 ... -
删除并重新安装ruby ,history
2011-12-23 18:28 16662155 cd ~/.rvm/ 2156 ll ... -
Ruby 对日期和content text 格式化的 helper
2011-11-17 17:22 565<% @news.each do |new| %& ... -
convert
2011-11-14 12:52 0ruby-1.8.7-p352 :003 > Gi ... -
11111111
2011-11-01 17:49 0rjust http://www.ruby-doc.org/ ... -
Ubuntu下 apache2+Phusion Passenger
2011-10-31 12:11 1359Ubuntu下 apache2+Phusion Passe ... -
(转载)Ubuntu下安装和配置Apache2
2011-10-28 15:34 1399原文:http://www.6yang.net/s ... -
.gitignore 和git pull
2011-10-28 10:08 2464在.gitignore档案中列出的档案名称将被忽略(注意:此 ... -
1111
2011-10-27 17:14 0class ZombiesController < ... -
Rails Controller的学习笔记
2011-10-27 14:02 0父类 ApplicationController : ... -
git rebase小计(转)
2011-10-27 11:12 1030git rebase,顾名思义,就是重新定义(re)起点(ba ... -
Convert png to gif
2011-10-27 10:25 1212require "tempfile" ... -
alias, alias_method和alias_method_chain
2011-10-24 16:50 01. alias Ruby里的关键字,用于定义方法或者 ...
相关推荐
git rebase(对最近某一阶段的提交历史进行编辑、删除、复制、粘贴、...fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f) exec:执行shell命令(缩写:x) drop:丢弃该commit(缩写:d)
如果需要将一个提交拆分为多个,可以使用“git rebase -i”,这样便于其他开发者对代码进行评审。 在团队协作中,Git工作流的使用是必须的。它定义了如何进行特性开发、代码审查以及如何将代码合并到主分支中。例如...
* git commit:提交 * git branch -a:查看所有的分支 * git branch -r:查看远程所有分支 * git commit -am "init":提交并且加注释 * git remote add origin:添加远程库 * git push origin master:将文件推送到...
4. **gitadd**和**gitcommit**:在代码变动后,自动添加新文件或修改过的文件,并进行提交,记录变更。 5. **gitpush**:完成构建和测试后,可以将本地提交推送到远程仓库,实现自动化部署。 在实际使用中,grunt-...
- **明确具体**:提交信息应该简洁明了,清楚地描述此次提交解决了什么问题或者实现了什么新功能,这对于后续的代码审查和维护非常重要。 3. **合理使用分支**: - **隔离开发**:通过创建新的分支来进行功能开发...
4. **合并分支**:使用`git merge`合并分支时,若存在冲突,需手动编辑冲突文件并`git add`,然后`git commit`。 5. **Stash**:暂时保存未提交的更改,使用`git stash`,之后可以恢复`git stash apply`或`git stash...
4. Git commit: 提交文件到 Git 仓库 5. Git pull: 从服务器下载 Git 仓库,并合并到本地仓库 6. Git push: 将本地 Git 仓库推送到服务器 7. Git fetch: 从服务器下载 Git 仓库,但不合并到本地仓库 8. Git checkout...
4. **多文件提交**: 如果有多个文件需要提交,插件会列出所有待提交的文件,用户可以选择要包含在此次提交中的文件。 5. **增强的交互**: 可能支持撤销、重做、复制粘贴等常见的文本编辑操作,提供更好的用户体验。 ...
4. **支持分布式开发**:Git支持成千上万个并行开发的分支,使得多开发者协作变得更加容易 。 5. **易于备份**:由于Git是分布式的,每个开发者的本地仓库都是一个完整的备份,这提高了数据的安全性 。 6. **分支和...
通过这个工具,团队成员可以各自编辑文档,然后使用Git来解决冲突,避免了传统方式下手动合并可能导致的混乱。 ### 6. 注意事项 - 虽然Python-WordGit提供了一种处理Word文档的解决方案,但它可能无法完美处理复杂...
Git-2.15系列是Git的一个稳定版本,引入了多项改进和新特性,如更高效的性能优化、增强的合并工具和更好的交互式界面。 2. 安装Git: - Mac版Git-2.15.0:对于Mac用户,可以通过Homebrew或者直接下载安装包进行...
如果修改只影响一个特定范围,可以写在括号内,多个范围用英文逗号分隔。如果影响广泛,可以使用`*`表示,但最好避免一次修改过多范围以保持原子性。 3. **主题(Subject)**: 主题是Commit目的的简短描述,不超过...
* git commit -m "message":提交文件 * git log:查看提交记录 * git status:查看文件状态 * git diff:查看文件差异 * git rm <file>:删除文件 * git mv <file>:移动文件 Git 的分支模型 Git 的分支模型允许...
2. ** squash (合并) 提交**:在交互式模式下,可以将多个提交合并为一个。只需将除了第一个之外的`pick`命令改为`squash`或`fixup`,然后保存并关闭编辑器。 3. **修正提交消息**:如果你想要修改某个提交的消息,...
12. 选择特定commit合并到当前分支:`git cherry-pick [commit]` 13. 删除分支:`git branch -d [branch-name]` 14. 删除远程分支:`git push origin --delete [branch]` 以上就是Git的一些基本命令,掌握这些命令...
* `git commit -a`:提交工作区自上次 commit 之后的变化,直接到仓库区 * `git commit -v`:提交时显示所有 diff 信息 * `git commit --amend -m [message]`:使用一次新的 commit,替代上一次提交 * `git commit -...
- 使用`git diff`查看冲突差异,`git add`解决冲突后加入暂存区,最后`git commit`完成合并。 9. Git配置: - 设置用户名和邮箱:`git config user.name "Your Name"`和`git config user.email "you@example....
Git的出现解决了之前版本控制系统的一些问题,并且提供了很多强大的功能,比如分支管理、合并、冲突解决等。它的主要使用场景包括代码版本控制、项目协作开发等。 Git的基本使用流程包括以下几个步骤: 1. 初始化...
- **合并(Merge)**:将两个或多个分支的代码合并到一起。 - **克隆(Clone)**:复制远程仓库到本地。 - **拉取(Pull)**:从远程仓库获取最新更改并合并到本地。 - **推送(Push)**:将本地更改推送到远程...