我 Git 命令列表 (2)【转】
因为我试图导入我旧的 WordPress 帖子到此博客不影响source
分支,我创建了一个新的分支,称为wpcom-importer
分支,对rake deploy
成功的运行。然而,一些我旧的 WordPress 博客包含一些特殊的字符,触发给 Octopress 进口商庄的 WordPress XML编码问题。rake
错误消息来看,我觉得我已经把转换的员额从 WordPress 的 XML 的右边的树枝上。
因此,起草了我新的职位上source
分支,但不是在wpcom-importer
分支上。然后切换到wpcom-importer
并删除一些不需要的部分的 XML 文件。然而,我不能切换回source
分支做另一个提交。因此,我用git stash
来解决问题。
完成后的草案,我犯下的变化、 切换到wpcom-importer
和"合并"上次更改对source
分支为rake preview
。在source
分支上运行预览命令的理由是为了避免在public
文件夹中的巨大变化。已经学会了做"合并",从这里。
被陌生与显示的数学方程1kramdown 语法,我犯了一些错误在源代码中为我以前的帖子上source
分支写入草案时。
(上次编辑君 19,2014)
从网络图中,我意识到我在了解合并在 Git 中的错误。我不应该手动犯下同样的变化,不同的分支,但也要将它提交一次只上一个分支和合并时提交另一个分支,如果两个不同分支之间没有冲突。
我继续写<posts>
。不幸的是,我有误犯wpcom-importer
,而不是source
分支上发生的变化。我很想去
- 在文件中删除提交,但保持所做的更改。
- "移动"更改后的文件从
wpcom-importer
到source
分支。 - 提交对
source
分支更改。 - 将
source
分支中的更改合并到wpcom-importer
.
我发出下面的命令来做到这一点。
$ git reflog # For checking purpose
$ git reset --soft HEAD^ # Revert to the previous commit
$ git log -3 # For checking purpose
$ git status # `<post>' should be in `... not staged for commit'
$ less <post> # For checking purpose
$ git reset HEAD <post> # Unstage `<post>' for commit
$ git checkout source # Go to the correct place for the commit
$ git add <post> # Add back `<post>' to `source' branch
$ git commit -am "<msg>" # Do the commit on the correct branch
$ git checkout wpcom-importer # Go back to another branch for merging
$ git merge source # Merge the changes back
小列表
收起和抓取
"藏"的手段,去另一支在这里临时区域中未提交的更改。
此列表用中文写的是一个 Git 命令的快速摘要。我学会了使用git stash
命令从那里。
$ git stash # save the uncommitted changes
$ git stash list # show a list of stashes
$ git stash show # inspect a list of stashes
$ git stash pop # apply and discard the topmost stash
$ git stash apply # apply but don't discard the topmost stash
$ git checkout source -- <file> # copy the file from other branch
在最后一次"合并"命令, --
避免歧义因为source
可以是一个分支或文件夹的名称在这种情况下。此外,此命令会影响提交历史。
更多关于倒带的事情
回溯到以前的版本在同一分支
这里是关于重置工作树与以前的版本更多的命令。
$ git reset --soft HEAD^ # Revert to the previous commit without changing the files
$ git reset --hard HEAD~2 # Take a further step back from `HEAD' and discard all changes in the files in the disappeared commits
重置和还原的东西之间的区别
本手册的git reset
,看到了一个链接到git revert
,和听不懂那些从那里的两个命令之间的区别。
如果你想要撤消提交以外最新的一个分支, git-revert(1)是你的朋友。
网页中的堆栈溢出真的是我的朋友。(URL)git revert
不会覆盖提交历史,所以它适合发布的更改,虽然git reset
可以改写历史。
撤消合并
请参阅撤消合并或拉和git reset
为解释手册 》 中的以下部分。
撤消的矛盾的合并
供应链管理会说:
Automatic merge failed; fix conflicts and then commit the result.
因此,问题合并没有一直致力。简单地运行git reset --hard
将解决这个问题。
撤消成功自动合并
使用ORIG_HEAD
而不是HEAD
的分支合并前提示。(即git reset --hard ORIG_HEAD
)
使用 git diff 合并提交
(添加在 2014 年 6 月 20 日)
一个缺点"......"
乐极生悲可能在git merge
中发生的冲突,其中一个可能运行git diff <branch1>..<branch2>
看出两个分歧分支之间的差异。然而,比较大块,并不表明添加和删除每个分支上。-
在 diff 大块可以引起要么
- 增加的内容在
<branch1>
;或 - 删除的
<branch2>
中的内容.
在<branch2>
上运行git merge <branch1>
在不同情况下给出了不同的结果。
- 线开始与
-
比较中大块将插入到<branch2>
. - 线从开始比较,
-
大块会插入到<branch1>
.
为预测是否会有冲突,需要知道每个分支上做更改已完成。因此,我们需要比较尖端的每个分支与他们共同的祖先。
让我举出两个例子作为说明。
示例 1
一个人有这样一个文件。
1 |
|
然后它被分为两个分支。
1 |
|
1 |
|
运行git diff <branch1>..<branch2>
,一个获取
+line 1
-line 2
line 3
示例 2
一个人有这样一个文件。
1 |
|
然后它被分为两个分支。
1 |
|
1 |
|
运行git diff <branch1>..<branch2>
一个获取
+line 1
-line 2
line 3
观察: diff 帅哥中的两个例子都相同,即使它们的共同祖先和文件中的更改是不同.
克服缺点
从上述的子部分中,很明显那个需要比较尖的每个分支上用两个分支的共同祖先。来看看如何<branch1>
已被修改,git diff <branch2>...<branch1>
可以用来比较的提示<branch1>
与的共同祖先<branch1>
和<branch2>
.
我 Git 命令列表 (2)【转】的更多相关文章
- 我 Git 命令列表 (1)【转】
转自:http://www.microsofttranslator.com/bv.aspx?from=en&to=zh-CHS&a=http%3A%2F%2Fvincenttam.gi ...
- 关于常用的git命令列表
我博客园中所写的git内容几乎都是看的蒋鑫老师的<git权威指南>这本书实在太好了. 常用的Git命令. git add 添加到暂存区 git add interactive 交互式添 ...
- 常look的Git命令
常用的Git命令 命令 简要说明 git add 添加至暂存区 git add–interactive 交互式添加 git apply 应用补丁 git am 应用邮件格式补丁 git a ...
- Git命令行(转用于学习和记录)
Git命令行介绍和使用说明(持续更新) 参见:<Git 中文简体教程> 一. 命令“git”或者“git help”查询常用命令 [add]: “git add”——不但是用来添加不在版本 ...
- Git命令详解
一个中文git手册:http://progit.org/book/zh/ 原文:http://blog.csdn.net/sunboy_2050/article/details/7529841 前面两 ...
- Git 命令速查表
Git 命令速查表 1.常用的Git命令 命令 简要说明 git add 添加至暂存区 git add-interactive 交互式添加 git apply 应用补丁 git am 应用邮件格式补丁 ...
- git命令实战之血泪记录
注意: 本文章所写所有命令均在Git命令行窗口执行!非cmd窗口! 打开git命令行窗口步骤为:到项目根目录下执行bash命令行操作:右键点击Git Bash Here菜单,打开git命令窗口,不是c ...
- 一天工作所用到的Git命令
一天工作所用到的Git命令 像大多数新手一样,我一开始是在网上搜索 Git 命令,然后把答案复制粘贴,并没有真正理解它们究竟做了什么. 后来我曾经想过:"如果有一个最常见的 Git 命令的列 ...
- git命令的理解与扩展
Git的模式如图: Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Repository:仓库区(或本地仓库) 一.新建代码库 # 查看gi ...
随机推荐
- shiro添加注解@RequiresPermissions不起作用
这是因为没有开启spring拦截器,在spring-mvc.xml中加入以下代码就可以了(一定要写在最先加载的xml中,写在后面加载的xml中也不起作用) <bean class="o ...
- Hibernate SQL方言 (hibernate.dialect)
数据库 hibernate方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect.DB2400Dialect ...
- js获得浏览器页面高宽
不同的浏览器可能会有一些差别,使用的时候请先进行测试. var s = ""; s += " 网页可见区域宽:"+ document.body.clientWi ...
- tomcat与IIS在多IP服务器下的支持
同一个服务器下,双IP(或更多IP),实现tomcat与IIS公用80端口. 操作其实也很简单的,首先禁用iis的套接字池,iis绑定一个ip,然后tomcat在绑定另一个ip,最后重启下服务器即可. ...
- 一篇不错的讲解Java异常的文章(转载)
http://www.blogjava.net/freeman1984/archive/2007/09/27/148850.html 六种异常处理的陋习 你觉得自己是一个Java专家吗?是否肯定自己已 ...
- iOS-CALayer图片淡入淡出动画
]; } - (.f; CABasicAnimation *boundsAnimation = [CABasicAnimation animationWithKeyPath:, , ...
- iOS多线程的初步研究(四)-- NSTimer
理解run loop后,才能彻底理解NSTimer的实现原理,也就是说NSTimer实际上依赖run loop实现的. 先看看NSTimer的两个常用方法: + (NSTimer *)timerWit ...
- JAVA IO 类库详解
JAVA IO类库详解 一.InputStream类 1.表示字节输入流的所有类的超类,是一个抽象类. 2.类的方法 方法 参数 功能详述 InputStream 构造方法 available 如果用 ...
- MongoDB (一) MongoDB 介绍
MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便. MongoDB工作在收集和文件的概念. 数据库 数据库是一个物理容器集合.每个数据库都有自己的一套文件系统上的文 ...
- 求一个全排列函数: 如p([1,2,3])输出:[123],[132],[213],[231],[312],[321]. 求一个组合函数 如p([1,2,3])输出:[1],[2],[3],[1,2],[2,3],[1,3],[1,2,3]
深度搜索的代码: #include<stdio.h> #include<string.h> ; int n; int a[Max]; bool b[Max]; void Dfs ...