git备忘录

一、git revert和git reset都是回滚提交记录,区别是什么?

a、git reset回滚到指定的commit_id,在该commit_id之后的提交会被删除。

1、通过git log找到要撤销的commit的版本号,复制它上一个版本号(注意版本号之后的提交都会被撤销)

2、执行

git reset --hard ac82adae143fffd4ad9c0b08c983ac8679809b82

将指针回退到该版本号

--hard  表示抛弃当前工作区的修改

--soft   表示保留当前工作区的修改

 

3、覆盖远程代码

git push origin feature/app2_20170531_aicai-bk --force

将本地版本覆盖远程版本,因为本地版本落后于远程版本,所以要加--force

 

git push origin 本地分支名:远程分支名 --force

当本地和远程分支名不同时需要注明,否则远程不会被覆盖。

此时再看git log,如下图

b、git revert是将之前的提交反转(新增就删除),然后作一次新的提交,原log日志保留。

1、git revert -n commit_id // 复原指定的commit_id

git revert -n commit_id -m parent_num // 当复原的commit_id是merge操作,需要指定parent_num。如在分支feature/YYHD-2233上执行merge feature/test,parent 1是feature/YYHD-2233,parent 2是feature/test。

2、可以看到在分支名右侧出现REVERTING(feature/YYHD-2233|REVERTING),所以需要commit生成新的提交记录。

 

二、gitignore不起作用的解决

当要忽略某个文件不想被版本控制时可以写到.gitignore文件,但实际是用git status发现文件仍然被跟踪,原因是这个文件之前被跟踪过仍在暂存区中。

执行以下命令将文件中暂存区中移除

git rm --cached filename

然后再修改此文件,执行git status发现已被忽略

三、从一个git仓库迁移代码到另一个git仓库

// 获取远程仓库,默认origin
$ git remote
origin

// 新增远程仓库origin2(名称随意)
$ git remote add origin2 master

// 将远程仓库origin2设置一个新的远程连接
$ git remote set-url origin2 http://gitlab.example.com/front/syao-front.git

// 再次查看远程仓库
$ git remote
origin
origin2

// 将本地master分支拷贝到远程master分支
$ git push origin2 master:master

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值