git基础笔记

107 阅读2分钟

提交到暂存区

  • 提交某个文件夹git add xx文件夹
  • 提交所有 git add .

提交到本地库

  • git commit -m "提交注释"
  • 查看版本信息 git log
  • 进行历史回退 回退一个版本git reset --hard HEAD^ 回退到上上个版本git reset --hard HEAD~2

分支

  • 创建分支 git branch xxx
  • 切换分支 git checkout xxx
  • 创建并切换到新分支 git checkout -b xxx
  • 删除分支 git branch -d login
  • 合并分支merge git merge xxx 将xxx分支上的内容合并到当前分支上,如果要使xxx分支上的指针移动到合并后的位置,只需切换到xxx分支并合并当前分支即可。
  • 合并分支rebase git rebase xxx rebase其实没有进行合并操作,只是提取了当前分支的修改内容,复制到了目标分支的最新提交后,rebase还会导致目标分支的历史丢失。
  • 强制移动main分支到xx提交 git branch -f main HEAD~xx 将 main 分支强制指向 HEAD 的第 3 级父提交 HEAD^ === HEAD~2
  • 将某些提交分支到当前提交下 例如当前分支是main,将dev分支复制到当前分支下,git cherry-pick dev

撤销

  • git reset 一般用于本地仓库,用于远程仓库无效,直接回退到上一个提交,当前提交不存在。
  • git revert HEAD~1 相当于将上一个提交复制后到当前提交的下一个提交,即创建了一个新提交,内容为当前的上一个提交,用于远程仓库

远程仓库

  • git clone 拷贝远程仓库到本地
  • git fetch 从远程仓库下载本地仓库中缺失的提交记录,并更新远程仓库指针,而本地仓库并没有与远程仓库同步,相当于它只是下载了数据,但没有修改文件。(远程分支反映了远程仓库在你最后一次与他通信的状态)
  • git pull 相当于先使用git fetch移动远程仓库指针,然后git merge将远程仓库版本和当前仓库版本进行合并。
  • git push 将本地版本提交到远程仓库。注意,当你的提交不是基于远程仓库最新版本时,需要先进行合并, 也就是说你要先获取远程仓库版本,在与本地合并(git pull),然后再提交(git push), git pull 相当于git fetch + git mergegit pull --rebase相当于git fetch + git rebase