csdn怎样撤回已发出的邮件采纳

vi下如何撤销操作?
[问题点数:20分,结帖人YanZhikai]
本版专家分:0
结帖率 100%
CSDN今日推荐
本版专家分:0
本版专家分:0
结帖率 100%
匿名用户不能发表回复!|
CSDN今日推荐Git 撤销操作
同步远程库到本地
同步远程到本地需要先同步远程库到本地,然后同步本地库到工作区,这里没有暂存区。
同步本地库到工作区
一步到位:同步远程到本地库和工作区
两步实在是太麻烦了,事实上我们也可以一步到位。
执行下面的命令修改一下文件。
echo "line2" && test.txt
如果你想看一下修改了什么,试一试下面的命令吧。
git diff test.txt
说实话,我根本看不懂输出的结果,事实上,Git 允许我们配置一个外部的比较软件,如 kdiff3
配置外部比较软件
首先下载和安装KDiff3,然后使用下面的命令配置。
git config --global diff.tool kdiff3
git config --global difftool.kdiff3.path "/c/Program Files/KDiff3/kdiff3.exe"
配置完成后,试一试下面的命令吧,是不是 much better?
git difftool test.txt
丢弃工作区修改
改完文件后,你发现改错了,想撤销修改,怎么办?Git 有后悔药,试一试下面的命令吧。
修改文件并添加到暂存区
下面我们再次修改文件并添加到暂存区。
echo "line2" && test.txt
git add test.txt
丢弃暂存区修改
如果这个时候你还需要修改一下文件,想丢弃暂存区修改,但是保留工作区的修改,该怎么办呢?试一试下面的命令吧。
git reset test.txt
丢弃暂存区和工作区修改
如果你想丢弃暂存区和工作区修改,试一试下面的命令吧。
修改文件并添加到暂存区
下面我们再次修改文件并添加到暂存区。
echo "line2" && test.txt
git add test.txt
文件添加到暂存区后,再次修改文件
echo "line3" && test.txt
这时候,test.txt 在工作区,暂存区,本地库中都不一样,如何比较它们的不同呢?
比较工作区和暂存区
git difftool test.txt
比较暂存区和本地库
比较工作区和本地库
git difftool HEAD test.txt
比较两个版本
git difftool f302a138bb51b880f
8d6949c96fec09f8b5cae5e3ef76ab
撤销指定版本
如果不小心提交到了本地库,后悔了,怎么办?试一试下面的命令吧。
git revert HEAD
回退到指定版本
如果提交了好多版,想回到某个版本,丢弃后面所有版,怎么办?
– 更多参见:
– 声 明:转载请注明出处
– Last Updated on
– Written by ShangBo on
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!工作流系统之三十三 撤回的实现
工作流系统的回退流,是指流程实例运行到一定阶段后,可以主动的选择回退到曾经运行过的任意轨迹上。回退流的发起方是当前步骤的任务执行人,选择主动的回退,上面有一篇 ,主要说明了回退流的实现过程。
工作流系统的撤回,是指流程实例运行了一定的轨迹后,上一步的任务执行人,选择撤回刚刚提交的任务,使得流程再次流转到此步骤。撤回的发起方是当前步骤的上一步任务的执行人,选择主动撤回。
如上图:红色圈为当前运行到的轨迹,当上一步审核步骤的任务执行人,选择主动撤回时,则将回退到审核步骤,再次执行。
撤回与回退的两个区别:
1. 撤回只能撤回到当前步骤的上一步,不能跨多个步骤的撤回。回退是可以任意的回退。
2. 撤回的发起方是上一步的任务执行人。回退的发起方是当前步骤的可执行人。
撤回与回退的相同点:
1. 撤回和回退都是指回到曾经的轨迹;
2. 撤回和回退回到曾经运行的轨迹后,再次生成此轨迹的任务,并且辅助业务补偿类,将环境或业务数据恢复成原来的,持久化变量可以忽略,临时变量则需要重新赋值。
3. 撤回和回退都不是按照流程定义的正常轨迹流转,需要配置有权限的用户去操作。
撤回功能的实现:
既然撤回与回退都是回到曾经运行的轨迹,只是发起方不一样,所以在实现的时候,只需调用同一流程引擎的实现自由回退的api函数。
串行路由,实现撤回,查找当前撤回步骤的下一步是否为当前步骤,是则强行关闭当前的任务,回退到此步骤,重新生成此步骤的任务。
条件路由,实现撤回,查找当前撤回步骤的下一步是否为当前步骤,需要查找有条件结果和无条件结果,有则实现回退。
分支路由,实现撤回,主要是查找当前撤回步骤的下一步是否为当前步骤,需要略过分支节点来查找,查找到了,则实现回退。撤回的过程与回退流的实现过程一样。
分支路由的撤回,分为在分支上面的撤回,与,分支到主干上的撤回
分支--分支的撤回
在分支上面的撤回,则只撤回本分支的任务,其它分支不受影响。
分支--主干的撤回
分支撤回到主干,则将关闭所有的分支,撤回到主干。如果分支上面嵌套分支,也将关闭所有的嵌套分支,回到主干。
聚合路由,实现撤回,当一个分支提交了,其它分支还未执行,即未满足聚合的条件时,则实现不了撤回,因为当前步骤还在另一个分支,还未执行到聚合后面的节点。当分支条件均满足后,流转到聚合节点后面的步骤,则可以实现撤回,撤回与回退一样,只撤回此分支的轨迹,其它分支不撤回。
撤回与回退的功能均是不按流程定义的轨迹去任意执行,因此在操作的时候不能给所有的用户都分配此功能。撤回与回退在流程引擎中的实现是一样的,撤回只是对回退的一个补充。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!git 撤销操作
http://www.liaoxuefeng.com/wiki/bb000/254ee90db11b13d4ba9a73b8d000
自然,你是不会犯错的。不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行:
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
My stupid boss still prefers SVN.
在你准备提交前,一杯咖啡起了作用,你猛然发现了“stupid boss”可能会让你丢掉这个月的奖金!
既然错误发现得很及时,就可以很容易地纠正它。你可以删掉最后一行,手动把文件恢复到上一个版本的状态。如果用git status查看一下:
$ git status
no changes added to commit (use "git add" and/or "git commit -a")
你可以发现,Git会告诉你,git checkout -- file可以丢弃工作区的修改:
$ git checkout -- readme.txt
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git
add时的状态。
现在,看看readme.txt的文件内容:
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
文件内容果然复原了。
git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git
checkout命令。
现在假定是凌晨3点,你不但写了一些胡话,还git add到暂存区了:
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
My stupid boss still prefers SVN.
$ git add readme.txt
庆幸的是,在commit之前,你发现了这个问题。用git
status查看一下,修改只是添加到了暂存区,还没有提交:
$ git status
Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:
$ git reset HEAD readme.txt
Unstaged changes after reset:
readme.txt
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
再用git status查看一下,现在暂存区是干净的,工作区有修改:
$ git status
no changes added to commit (use "git add" and/or "git commit -a")
还记得如何丢弃工作区的修改吗?
$ git checkout -- readme.txt
$ git status
nothing to commit (working directory clean)
整个世界终于清静了!
自然,你是不会犯错的。不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行:
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
My stupid boss still prefers SVN.
在你准备提交前,一杯咖啡起了作用,你猛然发现了“stupid boss”可能会让你丢掉这个月的奖金!
既然错误发现得很及时,就可以很容易地纠正它。你可以删掉最后一行,手动把文件恢复到上一个版本的状态。如果用git status查看一下:
$ git status
no changes added to commit (use "git add" and/or "git commit -a")
你可以发现,Git会告诉你,git checkout -- file可以丢弃工作区的修改:
$ git checkout -- readme.txt
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git
add时的状态。
现在,看看readme.txt的文件内容:
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
文件内容果然复原了。
git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git
checkout命令。
现在假定是凌晨3点,你不但写了一些胡话,还git add到暂存区了:
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
My stupid boss still prefers SVN.
$ git add readme.txt
庆幸的是,在commit之前,你发现了这个问题。用git
status查看一下,修改只是添加到了暂存区,还没有提交:
$ git status
Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:
$ git reset HEAD readme.txt
Unstaged changes after reset:
readme.txt
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
再用git status查看一下,现在暂存区是干净的,工作区有修改:
$ git status
no changes added to commit (use "git add" and/or "git commit -a")
还记得如何丢弃工作区的修改吗?
$ git checkout -- readme.txt
$ git status
nothing to commit (working directory clean)
整个世界终于清静了!
现在,假设你不但改错了东西,还从暂存区提交到了版本库,怎么办呢?还记得一节吗?可以回退到上一个版本。不过,这是有条件的,就是你还没有把自己的本地版本库推送到远程。还记得Git是分布式版本控制系统吗?我们后面会讲到远程版本库,一旦你把“stupid
boss”提交推送到远程版本库,你就真的惨了……
又到了小结时间。
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考一节,不过前提是没有推送到远程库。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!stay hungry stay foolish
vim 撤销操作
打个广告,请有意向加入腾讯的前端,将简历发送至
在vi中按u可以撤销一次操作
撤销上一步的操作
Ctrl+r 恢复上一步被撤销的操作
如果你输入“u”两次,你的文本恢复原样,那应该是你的Vim被配置在Vi兼容模式了。
如果你撤销得太多,你可以输入CTRL-R(redo)回退前一个命令。换句话说,它撤销一个撤销。要看执行的例子,输入CTRL-R两次。字符A和它后面的空格就出现了:
young intelligent turtle
有一个特殊版本的撤销命令:“U”(行撤销)。行撤销命令撤销所有在前一个编辑行
上的操作。 输入这些命令两次取消前一个“U”:
A very intelligent turtle
xxxx 删除very
A intelligent turtle
xxxxxx 删除turtle
A intelligent
用“U”恢复行
A very intelligent turtle
用“u”撤销“U”
A intelligent
“U”命令自己改变自己,“u”命令撤销操作,CTRL-R命令重做操作。这有点乱,但不用
担心,用“u”和CTRL-R命令你可以切换到任何状态。
流行的文本编辑器通常都有前进和后退功能,可以在文件中曾经浏览过的位置之间来回移动。在 vim 中使用 Ctrl-O 执行后退,使用 Ctrl-I 执行前进。
相关帮助:
:help CTRL-O
:help CTRL-I
:help jump-motions
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 已发送邮件如何撤回 的文章

 

随机推荐