Git Learn

Git Learn

Git commit

提交记录,记录点指向下一个新提交的记录节点

Git Learn

Git branch
  • git branch + 分支名 (创建一个分支)
  • git checkout + 分支名 (切换到分支,*表示当前分支)

Git LearnGit Learn

Git merge

Git 中合并两个分支时会产生一个特殊的提交记录,它有两个父节点

  • 创建一个节点,先合并一个父 节点,再合并另一个节点

    • git merge bugFix

      Git LearnGit Learn

    • git checkout bugFix

    • git merge master

      Git Learn

  • **任务:**创建一个分支,再合并分支

    预期:

    Git Learn

  • Git Learn

    Git Learn

Git rebase

合并,生成一条直链

  • git rebase +合并到的分支 (把*当前分支加到 合并的分支)

    Git Learn

Git merge 和 rebase的区别

Git Learn

Git checkout HEAD^

往回走,回到当前指向的上一级父类

Git checkout HEAD~(num)

一次性返回多级上一级

Git branch-f (分支名) HEAD~(num)

强制性的将 具体 分支 返回多级父类

Git Learn

Git reset

Git reset + 分支名 (跳到前面哪个版本,废弃所跳版本后的所有版本)

通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”

Git Learn

Git Learn

Git revert

revert 是回滚某个 commit ,不是回滚 "到"某个

Git Learn

Git Learn

Git cherry-pick

git cherry-pick + (抓来的分支)

将来抓来的分支拼接到当前HEAD 后

git cherry-pick c2 c4 (当前 HEAD 指向 c5)

Git LearnGit Learn

Git rebase -i HEAD~(num)

打开ui界面,拼接到当前 * 所指的节点的后面,ui界面可以调整添加到 *节点后面的顺序或者个数(可以删除)

git rebase -i HEAD~4

Git Learn

Git Learn

Git clone

将远程的拷贝复制对象于本地

git clone

Git Learn

Git fetch

当远程仓库数据更新时,本地仓库只需要 git fetch 可以克隆远程仓库的新增项

git fetch

Git LearnGit Learn

Git pull

git pull 的操作 = git fetch + git merge

本地仓库比较远程端,将未知父节点新增的子节点进行下载,与当前节点作为兄弟节点,再调用 merge 合并

git pull

Git Learn —>Git Learn

Git push

本地编辑新增加的数据需要同步到远端

git push

Git Learn

Git pull --rebase

当本地的仓库树与远端的不一致的时候,先合并再push

git pull --rebase == git fetch + git rebase o/master

Git Learn —>Git Learn

应用实例
  • 模拟远端已经有新的分支,而本地也有新得产物未更新同步

    Git Learn

  • git pull --rebase (合并)

    Git Learn

  • git push (推送同步)

    Git Learn n