提交到暂存区
提交某个文件夹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 merge,git pull --rebase相当于git fetch + git rebase。