learngitbranching

353 阅读2分钟

一个学习git的网站:learngitbranching

记得当年大一下学期的时候疫情在家没事参加了一个学习前端的活动,活动中就让用这个网站学习git,当时不知道为什么也没学明白,今天晚上没事无意间打开这个网站发现还挺好玩,边玩边记录下

git add filename 添加文件到暂存区
git commit -m message 提交暂存区中的文件并附带提交信息
git log 查看日志
git branch 查看分支
git branch newBranchName 新建分支
git checkout branchNameTo/tagName/HashCode 切换到分支
git branch -f branchName branchNameTo/tagName/HashCode 使分支指向
git tag 显示标签
git tag v1.0 给当前分支打标签
git merge toBeMergedBy 把其他分支的代码合并过来
git clone url 克隆仓库
git pull 从远程仓库拉取
git push 提交到远程仓库
git remote add origin https://github.com/ZhengLin-Li/learnGit.git 指定远程仓库名称和地址
git remote -v 查看远程仓库状态
git push origin branchName 提交到远程仓库的某分支
git pull origin branchName 从远程仓库拉取的某分支
git diff 比较当前文件和暂存区文件差异

level 1

  • git commit 提交
  • git branch <branchname> 在当前HEAD新建一个分支,名为branchname,注意只是新建并不切换

    使用 git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下

    没有参数时,git branch 会列出你在本地的分支
  • git checkout <branchname> 切换到branchname分支
  • git merge <branchname> 合并当前分支到branchname分支
  • git rebase <branchname> 复制一个提交序列,使之看上去像顺序开发的线性序列

level 2

  • git checkout <哈希值>HEAD指向哈希值分支 之前是HEAD -> main -> C1,分离HEAD后是HEAD -> C1
  • 相对引用 使用 ^ 向上移动 1 个提交记录,例如git checkout HEAD^git checkout bugFix^
    使用 ~<num> 向上移动多个提交记录,如 ~3
  • git branch -f <branchname> <branchname> 让一个分支指向另一个提交

    例如git branch -f main HEAD^main分支指向另一个提交HEAD的父父父
  • git reset <brachname> git reset 向上移动分支到branchname,原来指向的提交记录就跟从来没有提交过一样,只在本地有用
  • git revert <brachname> 在当下分支到下一级新建并指向一个和之前(branchname的前一个)一模一样的分支,对远程分支有用

level 3

  • git fetch <url> 可以将 git fetch 的理解为单纯的下载操作

    git fetch 并不会改变你本地仓库的状态。它不会更新你的 main 分支,也不会修改你磁盘上的文件。

    远程分支反映了远程仓库在你最后一次与它通信时的状态
  • git pull <url> 先抓取更新再合并到本地分支

    git pull 就是 git fetchgit merge 的缩写!

    今天先玩到这,以后有时间接着玩hhh

image.png

image.png