[关闭]
@Bios 2022-05-24T02:52:11.000000Z 字数 1842 阅读 688

Git笔记

git


删除远程仓库

  1. git branch -r // 查看远程仓库
  2. git branch -r -d origin/branch-name
  3. git push origin :branch-name

强制合并

refusing to merge unrelated histories

  1. git merge <对应的分支> --allow-unrelated-histories
  2. // 输入完后,会进入vim,这时你就只需输入你这次commit的补充信息,就是类似
  3. git commit -m ""
  4. // 双引号当中的内容,esc退出输入,再输入”:wq”即可。

本地库 和 远程 关联

  1. git branch --set-upstream-to=origin/master master

本地项目 放到仓库

  1. git remote add origin xxxxxx.cxx
  2. git pull origin master // 拉取远程代码
  3. git add .
  4. git commit -m 'xxx'
  5. git push --set-upstream origin master

回滚

回滚之前 最好备份

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

  1. # 查看提交记录
  2. git log
  3. # 回滚到commit-id,讲commit-id之后提交的commit都去除
  4. $ git reset --hard commit-id
  5. # 或者将最近3次的提交回滚
  6. $ git reset --hard HEAD~3
  7. $ git push origin xxx --force
  8. $ git checkout the_branch
  9. $ git pull
  10. # 备份一下这个分支当前的情况
  11. $ git branch the_branch_backup
  12. # 把the_branch本地回滚到the_commit_id
  13. $ git reset --hard the_commit_id
  14. # 删除远程 the_branch
  15. $ git push origin :the_branch
  16. # 用回滚后的本地分支重新建立远程分支
  17. $ git push origin the_branch
  18. # 如果前面都成功了,删除这个备份分支
  19. $ git push origin :the_branch_backup

git merge分支合并push之后,如何回滚到merge前的代码版本?

指令如下:

  1. git reset hard HEAD^
  2. git push -f

撤回commit

  1. git reset --soft HEAD^

清除gitignore缓存

  1. git rm -r --cached .
  2. git add .
  3. git commit -m "update gitignore"
  4. git push

更新远程分支列表

  1. git remote update origin -p

git reflog 与 git cherry-pick

  1. git reflog

然后就会展示出所有你之前git操作,你以前所有的操作都被git记录了下来。
特别是回滚的时候 把中间一下代码给冲掉了,可以这样查看commit hash
再次回滚一下

好的,我们回到了feature-6上,但是feature-7没了,如何加上来呢?这个时候就用上了git cherry-pick,刚刚我们知道了feature-7的hash码为4c97ff3,操作如下:

  1. git cherry-pick 4c97ff3

这个命令可以选择 某一个 commit:

举例来说,代码仓库有master和feature两个分支。

a - b - c - d   Master
     \
       e - f - g Feature

现在将提交f应用到master分支。

  1. # 切换到 master 分支
  2. $ git checkout master
  3. # Cherry pick 操作
  4. $ git cherry-pick f

上面的操作完成以后,代码库就变成了下面的样子。

a - b - c - d - f   Master
     \
       e - f - g Feature

Cherry pick 支持一次转移多个提交。

  1. $ git cherry-pick <HashA> <HashB>

重新设置远程仓库

git remote set -url @git..xxx

同步远程仓库

  1. git fetch origin
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注