git使用总结

一.基本概念

工作区:本地git管理的文件夹的内容

缓存区:git add将工作区内容更新到缓存区

本地分支:git commit将缓存区内容更新到本地分支

远程分支:git push将本地分支更新到远程服务器端分支

git管理的文件夹内的.gitignore文件可以告诉git不用管理有哪些后缀的文件

若untracked file在版本切换和分支切换前存在于工作区,则该文件会出现在切换后的工作区,且仍处于untrack状态

一个良好的习惯是,再切换分支和切换版本前git add,git commit一遍,保证working tree干净

二.基础指令

git add -A //添加工作区所有文件到缓存区(包括.git,.gitignore等隐藏文件)

git add filename //添加指定文件到缓存区

git commit -m "注释" //将缓存区内容提交到当前分支,并附带备注

git status //比较工作区和分支文件异同(新增或删除了哪些文件)和缓存区的哪些文件还未提交到分支

git clone 仓库url //从远程服务器克隆仓库到本地

git push -u origin master//将远程空仓库克隆到本地后,使用该命令第一次推送本地master分支的所有内容到远端

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令

git push //将当前分支push到远程服务器,前提是远程服务器上已有对应分支

git pull //将远程服务器端分支的更新同步到本地分支

git init 仓库名 //在本地工作区创建新的仓库

git push --set-upstream origin //当本地创建新分支想创建远程分支时使用的命令

三.进阶指令

  • 指定文件的版本回退

    git checkout -- filename //将文件内容恢复到当前缓存区的对应版本

    git reset HEAD filename //将该文件的本地分支的版本覆盖缓存区的版本

  • 工作区全部内容的版本回退

    git reset --hard HEAD^ //回退到上一个commit的版本
    git reset --hard 版本号 //上个版本可用HEAD^表示,其余版本号可用git reflog查看;该命令会重置工作区和缓存区为版本库内容(非常实用,我个人用得蛮多的;遇事不决,果断重启emm);若版本回退前有untracked file存在于工作区,切换版本会将该文件带到回退后的版本

  • 分支查询、切换操作

    git checkout --orphan 分支名 //创建一个与当前分支无关的新分支并切换过去

    git checkout -b 分支名 //创建一个从当前分支的子分支并切换过去

    git checkout 分支名 //切换到已有的分支

    git branch -a //查看本地和远程服务器上的所有分支

    git branch -d 分支名 //删除非当前分支的分支

  • 其他
    git log //显示从最近到最远的提交日志

原文地址:https://www.cnblogs.com/notorious/p/11704493.html