git备忘录

网上的一个图:

  1. git fetch
    将远程库的代码在本地仓库中更新,注意:本地工作空间并不会有变化,仅仅是origin(默认)主机对应的远程库在本地更新
    一般是后面接 主机名 或者 主机名 分支名,例如 git fetch origin 或者git fetch origin master
    git pull相当于是 git fetch+git merge
    git pull --rebase 相当于是 git fetch + git rebase

  2. git merge 和git rebase的差别。
    https://www.cnblogs.com/kevingrace/p/5896706.html 帮助参考
    git merge --no-ff -m "merge with no-ff" dev 普通合并模式,会创建一个新的commit id。
    在这里插入图片描述

  3. git仓库迁移,两个仓库之间的数据转移,保留log

    git clone xxxxxx -b master
    git remote add log yyyyyyyy
    git fetch log
    git checkout -b log log/master
    git checkout master
    git rebase log
    git push origin master

  4. git pull失败
    如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

  5. git reset --hard HEAD^ 回退到上一个版本,本地工作空间会变化
    或者git reset --hard 1094a 回退到某个指定的commit节点

  6. git reflog 记录每一次git命令

  7. git diff HEAD <file> 可以查看工作区和版本库里面最新版本的区别

  8. 命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
    一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
    一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
    总之,就是让这个文件回到最近一次git commit或git add时的状态。

  9. git reset HEAD <file> 可以把暂存区的修改撤销掉(unstage),重新放回工作区

  10. git log --graph可以看到分支合并图

  11. git stash 可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
    git stash list 查看stash列表
    git stash apply 恢复内容,不过恢复后,stash内容并不删除,你需要用git stash drop来删除
    git stash pop 恢复的同时把stash内容也删了

  12. git checkout -b dev origin/dev 创建远程origin的dev分支到本地

  13. git rev-parse --short HEAD 获取最近一次提交的commit id (短id)
    git rev-parse HEAD 获取最近一次提交的commit id (长id)

原文地址:https://www.cnblogs.com/liurizhou/p/10196181.html