git使用进阶

如何回退已经push的代码?

第一步:

git rebase -i "commit id"  //  这里会处理 commit id 之前的提交记录,不包含 commit id

git rebase -i "commit id"^  // 这里会处理 commit id 以及 commit id 之前的提交记录,包含commit id

比如提交记录顺序:

7bb5dae 第三次提交
1b041cf  第二次提交
7105892  第一次提交

git rebase -i  1b041cf  , 则会修改  1b041cf  和 7bb5dae ,也就是 从第二次提交之后 的提交

第二步:

进入 编辑框后,

选择需要 删除的 提交记录,修改命令为  s 

保存退出

第三步:

git push origin branch_name  -f  // 这里需要加 -f 参数,强制 提交

操作之后,本地库会和远程库不一致,提交时 会提示 先 pull 远程库的代码。所以,如果没有强制提交权限,那么这种操作也是行不通的。

注意的是,虽然回退了,但是 别人拉下来的项目 似乎不会同步 回退,所以 还需要 同步一下信息。

如何回退已经commit没有push的代码

这个时候,记录还在本地:

git reset --hard  commitId 

如何合并多次commit?

第一步:

git rebase -i "a213ef6"^  "ef35b2"  // 需要合并的 commit id 范围

第二步:

进入编辑框后

第一个commit id 是最开始的,需要设置为 p 命令

后面的commit id 是最近的,需要设置为 s 命令 

第三步:

保存,后 进入 编辑 commit message ,编辑 提交 信息

第四步:

此时,会生成一条新的commit id 

执行以下命令来处理:

 git checkout your branch

git reset --hard  新的commit id

git push origin your branch  -f   // 使用参数 -f 进行 强制提交

就OK 了

pull 不下来代码

git pull origin master ,提示: refusing to merge unrelated histories

解决: 用: git pull origin master --allow-unrelated-histories

如果没有强制提交的权限,可以在git仓库-Settings-Respository-Protected branches 进行设置

如何将某个commit合并到指定的分支呢?

1. 切换到 指定分支

2. git cherry-pick  2a206245

删除远程分支/tag

git push origin --delete  branch

git push origin --delete tag tag

查看提交记录的常用命令

git log --oneline -5   #显示 commitId  commit message

git log --pretty=raw -5  #显示commitId  author  commit message

-5 表示显示前5条数据

本地厂库与远程厂库的绑定与解绑

绑定:

git remote add origin git地址

解绑:

git remote -v  // 查看 本地厂库绑定到的远程厂库,显示:  origin 远程厂库git地址

git remote remove origin  // 这样就把远程厂库解绑了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值