git修改远程仓库地址命令: git remote set-url origin '新仓库url地址'
1、回滚不保留代码
- git reset --hard commitid 回滚本地的提交(新增文件丢失、删除的文件相当于没删)
- 一定要强推远程 git push origin 分支名 --force 强制推送,回滚远程的提交
2、回滚到之前某一版本但该版本后的提交仍需保留
-
首先使用git log命令查看版本号(commit后就是版本号)
-
git revert -n 版本号回滚到之前版本
-
git commit "备注信息" 提交
-
git push 推送至远程仓库
3、git commit但未push 把修改撤销到工作区中
1)使用 git reset --soft HEAD^ 命令,撤销了commit 代码依然保留 2)一定要强推远程,不然会有问题 git push origin 分支名 --force
windows进入Interact交互界面的操作
- 按
i进入操作, 将第二、三个commit的pick改成s - 按
Esc退出操作 - 输入
:wq保存并退出 - git rebase --continue 之后 跳出交互界面 如果不需要处理 调成大写输入 zz就会继续。
gitrebase使用方法1(解决了合并的时候不带其他人的提交),其他分支合入develop操作步骤
- checkout-b develop (切入develop分支)
- git fetch origin develop (拉取develop远端的提交)
- checkout-b 自己分支名 (切入自己本地分支)
- git rebase develop (执行本地分支变基)
- rebase过程可能会有冲突,解决冲突之后执行git rebase --continue。
- 之后跳出交互界面 如果不需要处理 调成大写输入 zz就会继续。
- rebase成功之后,一定要强推远程,git push origin 分支名 --force
- 强推成功之后发起合并请求(此时就不会带着一大堆其他人的提交,合并了),如果是网页发起的合并请求,注意得执行网页上的“变基”按钮。(因为远端的代码 没有rebase,所以rebase完了之后,一定得强推一把到远程)
gitrebase使用方法2(多次提交合并成一个)
- 例:分支上有 a,b,c,d,e5个提交记录。需要合并这a,b,c,d4个提交成一个提交。
- git rebase -i e的commitId(注意:这里的commitId是需要在d的前一个的)。
- 之后跳出Interact交互界面,把pick改成s就会往上合并。
- 最后强推远程,git push origin 分支名 --force。之后a,b,c,d四个提交记录就变成一个了。