3
Unstaged changes after reset:M source/src/cn/eoe/app/ui/MainActivity.javasu@SUCHANGLI /e/eoeclient/android-app/source/src/cn/eoe/app/ui (master) 3.提交到本地参考
1$ git commit -m "revert old file because yjl commmit have a bug" 结果
1
2
3
[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.更新到工作目录
1$ git checkout MainActivity.java 5.提交到远程仓库
1$ git push origin master Your local changes to the following files would be overwritten by merge
error: Your local changes to the following files would be overwritten by merge:
protected/config/main.php
Please, commit your changes or stash them before you can merge.
参考http://blog.csdn.net/zwhfyy/article/details/8625228
如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
git stash
git pull
git stash pop
然后可以使用git diff -w +文件名 来确认代码自动合并的情况.
反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hard
git pull
其中git reset是针对版本,如果想针对文件回退本地修改,使用
untracked working tree file
参考:http://blog.csdn.net/sheismylife/article/details/7204345
编写脚本自动编译并部署时的注意
如果想在C2上编写脚本自动从S1上获取最新代码时,要注意:
1.首先之前产生的公钥不能设密码,否则每次git pull的时候都会要求输入密码。
2.不要将项目中的编译中间文件提交到S1上,比如CMake工程里面的build目录的文件,Maven工程里面的target目录里面的文件。否则下次在C2等客户端用git pull会报类似于这样的错误:
error: Untracked working tree file 'public/images/icon.gif' would be overwritten by merge.
需要执行下面的命令才能修复:
git reset --hard HEAD
git clean -f -d
git pull git 如何回滚远程仓库版本 关于远程仓库回滚
首先,必须要明白的一件事,任何普通用户不能擅自做有关远程仓库回退的操作,如果你擅自回滚了远程仓库,会对项目团队其他人造成不可预知的影响。如果需要回退版本,先联系项目的仓库管理员,在团队其他人都对自己本地未提交的工作做好备份之后,再进行远程仓库回退操作,操作结束后,团队成员需要重新同步远程仓库后继续自己的工作。 通常回滚远程仓库会有以下三种情形: 1、删除最后一次提交
这种情况是最简单的了,只需要以下两步就可以了
git revert HEAD
git push origin master 注意,revert和reset的区别: revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在,而reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。如果还没有理解的话,我们做如下测试:
假设我们有以下三次提交记录:
现在我们使用revert放弃最后一次提交,之后执行git log:
git revert HEAD
git log