git命令总结
- HEAD:表示当前分支。
HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
- git reset --hard HEAD^ / git reset --hard HEAD~100 :回退版本,然后新的版本会丢失。
- git reset --hard 【commit的版本号】:重新回到新版本。使用git reflog可查看所有操作历史。
- git checkout 【file】:撤销工作区的文件修改。对比方法是拿工作区的内容和仓库区(包含暂存区和版本库)的内容进行对比。
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
- git reset HEAD 【file】:把暂存区的修改撤销掉(unstage),重新放回工作区。
- git remote -v:查看远程仓库信息。
- git remote rm【远程仓库名称】:删除远程仓库。此处的“删除”其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身并没有任何改动。要真正删除远程库,需要登录到GitHub,在后台页面找到删除按钮再删除。
- git remote add 【远程仓库名称】【远程仓库地址】:添加远程仓库。
- git switch 【分支名】:切换分支。
- git siwtch -c 【分支名】:创建并切换到新分支。
- git merge --no-ff -m 【注释内容】【分支名】:禁用
Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。
- git stash:可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作(除非有没有被Git管理的文件)。
- git stash list:查看“储藏”列表。
- git stash apply 【stash@{0}】:恢复“储藏”内容(恢复后,stash内容并不删除)。
- git stash drop:删除“储藏”内容。
- 或者使用
git stash pop,恢复的同时把stash内容也删了。
- git cherry-pick 【commit id】:复制一个特定的提交到当前分支。
- git branch --set-upstream-to 【分支名】 origin/【分支名】:本地分支和远程分支建立链接。
- git switch -c 【本地分支名】 origin/【远程分支名】:创建新分支然后切换到新分支并和远程仓库分支建立链接。
- git rebase:参考链接(变基后,分支不会删除)。
- git tag 【标记名】:给commitId 打标签。tag和commitId的关系就类似于域名和ip的关系。默认标签是打在最新提交的commit上的。
- git tag 【标记名】【commitId】:给指定commitId的提交打标记。
- git tag:查看所有标签。标签不是按时间顺序列出,而是按字母排序的。
- git show 【标记名】:查看标记详细信息。
- git tag -d 【标记名】:删除标记。
- git push origin 【标记名】:推送标记到远程仓库。
- git push origin --tags:一次性推送全部尚未推送到远程的本地标签。
- 删除远程标记:1、git tag -d 【标记名】;2、 git push origin :refs/tags/【标记名】。