git使用总结

扫码查看

一.基础知识

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

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

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

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

​ 用git check -b 分支名 来创建新分支并切过去时,切换后的分支版本库与切换前分支版本库相同,且working tree clean

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

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

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

二.常用指令

  • 基础指令

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

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

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

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

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

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

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

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

  • 删除、恢复文件

    git rm filename//在工作区已经删除文件的情况下,该指令能从缓存区删除该文件,且git status查询时untracked file中不包含该文件(此时等同于git add filename)

    git rm -f filename//在工作区没有删除文件的情况下,该指令能从工作区和缓存区删除该文件

    git rm --cached filename //将指定文件从缓存区删除,不改变工作区和分支,且git status查询时untracked file中包含该文件

    git checkout -- filename //将文件内容恢复到上个版本

    这里有两种情况:
    
    一种是file自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
    
    一种是file已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
    
    总之,就是让这个文件回到最近一次git commit或git add时的状态

    git reset HEAD filename //当我们在工作区修改了文件且add到了缓存区时,上一条指令是不能回退到修改前的版本;这条指令能用本地分支的版本覆盖缓存区的版本,再用上条指令就能恢复了

  • 分支查询、切换操作

    git checkout --orphan 分支名 //创建一个与当前分支无关的新分支并切换过去,查询git status时缓存区有东西待commit(且只有commit一次后才能用git branch查到该分支)

    git checkout -b 分支名 //创建一个从当前分支衍生出的分支并切换过去,新分支与旧分支版本库相同,且working tree clean

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

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

    git branch //查看本地所有分支

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

  • 版本切换

    git reset --hard 版本号 //上个版本可用HEAD^表示,上上个版本是HEAD^^;该命令会重置工作区和缓存区为版本库内容;若版本回退前有untracked file存在于工作区,切换版本会将该文件带到回退后的版本

    git log //显示从最近到最远的提交日志(git bash输入git log后可按q退出日志)

    git log --pretty=oneline //显示从最近到最远的提交日志,每个commit占一行,只显示版本号和comit时的注释

    git reflog //用来记录你的每一次操作

    $ git reflog
    e475afc HEAD@{1}: reset: moving to HEAD^
    1094adb (HEAD -> master) HEAD@{2}: commit: append GPL
    e475afc HEAD@{3}: commit: add distributed
    eaadf4e HEAD@{4}: commit (initial): wrote a readme file
  • 本地分支与远端分支同步

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

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

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