拉达xcode预计价格全球哪里有

浅谈git撤销回退命令相关用法
浅谈git撤销回退命令相关用法:初来公司实习,每次改完代码后都需要用代码管理工具git提交到代码库。由于刚开始对 git 并不熟悉,只会简单的 commit,push 指令,一旦提交出了问题需要撤销回退的话就不知道该怎么办了。经过一段时间的研究,总算是把里面相关原理搞懂了,遇到git提交出现问题,现在自己也能想办法解决而不至于手足无措了。下面就说说我对git撤销回退这块相关的理解。
首先,我们要弄清以下三条命令的区别:
git reset &hard
git reset &soft
工作区,暂存区,本地仓库,远程仓库的概念我在这里就不介绍了。这是git最为基础的概念,可自行百度。下面说说这三条 git reset 指令的区别:
git reset &hard: 重置工作区,暂存区,本地仓库的所有文件到某一节点。例如 git reset &hard HEAD^ 表示工作区,暂存区,本地仓库的所有文件全部回退到上一个节点,也就是说你从上一个节点到这个节点之间所做的修改全部被撤销了。当然如果要回到特定的一个节点可以用 git reset &hard commitId 。通过指定要回到的节点值来回到对应的节点。
git reset &soft:只重置本地仓库的文件,工作区和暂存区的文件不变。
git reset 等同于 git reset &mixed,只重置本地仓库和暂存区文件,工作区文件不变。
当我们提交完并push代码到远程仓库后,发现代码有问题,想重新提交,首先在gerrit上abandon掉自己刚才上传的代码,接着,用git reset HEAD^或者git reset &soft HEAD^回到上一个节点(git reset HEAD^后,使用git add .就相当于git reset &soft),不要用git reset &hard。因为这会把你本地工作区修改的全部撤销,这样你之前的修改就全没了。虽然也有办法再找回来,只要找到那次提交的commitId就可以了,下面会介绍。
另外,我们还可以用git reset file 来使一个已经添加到暂存区的file文件重新返回到工作区。
我们通过git log就可以查看到每次提交的 commitId 了,如果嫌 git log 显示的信息过多,可以使用 git log &pretty=oneline 让每次提交的关键信息在一行显示。但是如果使用了 git reset &hard,那么使用 git log 只能看到你重置点之前的提交 commitId,无法看到重置点之后的提交 commitId,要想找到重置点之后的 commitId 可以用git reflog。
git checkout
git checkout有两个作用,如果后面接的是文件名的话,如 git checkout file 可以将一个工作区的文件撤销其修改。如果后面接的是分支名的话,如 git checkout b表示的是切换到b分支。对于工作区新建立的文件,用 git clean -df 可将其移除工作区。46370人阅读
1.进入到文件所在文件目录,或者能找到文件的路径
查看文件的修改记录
$ git log MainActivity.java
commit 7641210b242a95eed1e76bdad6d619
Author: ronanhardiman &liqiang.isman@&
Mon Apr 29 00:51:00 2013 +0800
System.currentTimeMillis() 替代 timer 实现 连续两次返回键退出
System.currentTimeMillis() 替代 timer 实现 连续两次返回键退出
commit a4e27c85693dca7b68ee
Author: kaxi4it &gyj_android@&
Sat Apr 27 16:54:48 2013 +0800
修正了退出程序的BUG
用INT代替BOOL标记,修正了快速点击返回键一直播放退出动画的BUG,跳转页面后标记
commit d31fcc10cece1287368
Author: yjl &yujilong@&
Mon Mar 25 12:09:21 2013 +0800
2.回退到指定的版本
$ git reset a4e27c85693dca7b68ee MainActivity.java
Unstaged changes after reset:
source/src/cn/eoe/app/ui/MainActivity.java
su@SUCHANGLI /e/eoeclient/android-app/source/src/cn/eoe/app/ui (master)
3.提交到本地参考
$ git commit -m &revert old file because yjl commmit have a bug&
[master 874e01a] revert old file because yjl commmit have a bug
1 file changed, 26 insertions(+), 19 deletions(-)
su@SUCHANGLI /e/eoeclient/android-app/source/src/cn/eoe/app/ui (master)
4.更新到工作目录
$ git checkout MainActivity.java
5.提交到远程仓库
$ git push origin master
如果提交需要用户名密码的话,会有提示;
Username for 'https://': com360
Password for 'https://':
Counting objects: 17, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (9/9), 860 bytes, done.
Total 9 (delta 5), reused 0 (delta 0)
To https:///com360/android-app.git
7db7346..874e01a
master -& master
su@SUCHANGLI /e/eoeclient/android-app/source/src/cn/eoe/app/ui (master)
这样就把指定的文件回退到指定的版本了。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1117183次
积分:10318
积分:10318
排名:第1548名
原创:53篇
转载:331篇
评论:74条
(2)(1)(3)(2)(5)(2)(2)(3)(2)(1)(3)(7)(3)(2)(2)(8)(11)(14)(11)(3)(15)(21)(7)(11)(28)(11)(33)(1)(1)(2)(23)(4)(5)(4)(5)(3)(6)(20)(49)(5)(40)(3)问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
想把文件 include/plugin/funclib/function_member.php
恢复到 b257fc4f797d05f52a1a ( 23:38)这个版本,但是使用 git reset b257fc4f797d05f52a1a include/plugin/funclib/function_member.php 一直无法实现。
Administrator@USER-FZ /D//www (master)
$ git log include/plugin/funclib/function_member.php
commit bbb0a005d245e6d5ef5b1c0b1b0ef2981fa3ecb9
Author: ken &&
Mon Jan 5 22:07:37
commit b257fc4f797d05f52a1a
Author: ken &&
Mon Dec 29 23:38:09
add reg forbbiden
commit 052c0233bcaef35bbf6e6ebd43bfd6a648e3d93b
Author: ken &&
Mon Dec 29 21:51:44
add coname filter for register
commit d4c0a260d00124f9f
Author: ken &&
Mon Dec 29 01:24:13
add referrals.php delete some php files like serv.php yqm.php,modify registe
commit ebb7d2dfb8af0bd8a308
Author: default7 &&
Sun Jul 27 17:05:21
first commit
Administrator@USER-FZ /D//www (master)
$ git reset b257fc4f797d05f52a1a include/plugin/funclib/fun
ction_member.php --hard
fatal: Cannot do hard reset with paths.
Administrator@USER-FZ /D//www (master)
$ git reset b257fc4f797d05f52a1a include/plugin/funclib/fun
ction_member.php
Unstaged changes after reset:
include/plugin/funclib/function_member.php
Administrator@USER-FZ /D//www (master)
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
直接用 git-checkout 即可。理解起来稍微有点奇怪就是了。
$ git checkout ${commit} /path/to/file
来源参考:
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
我觉得使用tortoisegit挺好的啊,配置好之后直接有图形界面,用rever就可以恢复以前版本了
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
还需要执行git checkout xxxxx(文件名)
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
git不能把单独的某个文件恢复到指定的版本,如果要这要做,可以这样
1、git reset 版本号,这时候,会产生一个和版本号对应的分支
2、git checkout到这个分支,把要恢复的文件拷贝走
3、git checkout到原来的分支,把文件再拷贝回来,覆盖掉现在的文件,然后git add,git commit
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
1.如果你的提交还没有分享发布到远端可以用git rebase -i origin/branch 来对相应分支进行edit修改后重新提交git commit --ammend。2,如果你的提交已经分享到远端只能通过git revert 相应分支的情况,然后将其他文件checkout,只保留这个修改,然后再提交。3.有点复杂,如果有gui工具就很方便了,我一般是在webstrom的git控制上,点击某个版本的某个文件右击revert再提交即可
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
git checkout &sha1-of-a-commit& &/path/to/your/file&
同步到新浪微博
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App

我要回帖

更多关于 拉达xcode参数 的文章

 

随机推荐