zoukankan      html  css  js  c++  java
  • Git知识

    git最小化配置:

      配置user.name 和 user.email

      git config --global user.name 'your_name'

      git config --global user.email 'your_email'     // email需要是有效的Email

      config的作用域

      缺省等同于local

        git config --local  只对某个仓库有效

        git config --global 对当前用户所有仓库有效

        git config --system 对系统所有登陆用户有效

      显示config配置,加--list

        git config --list --local

        git config --list --global

        git config --list --system

    建Git仓库

      2种场景:

        把已有的项目代码纳入Git管理

          #cd 项目代码所在的文件夹

          #git init

        新建项目直接用git 管理

          #cd 某个文件夹

          #git init your_project  会在当前路径下创建和项目同名的文件夹

          #cd your_project

    往仓库里添加文件:

      版本历史

      暂存区

      工作目录

        查看git工作状态

          #git status

        将文件加入到暂存区:

          #git add 文件或文件夹

        将暂存区文件正式提交

          #git commit  -m  "内容"

        查看版本历史的日志

          #git log

        将已经管理但是刚修改的文件添加到暂存区

          #git add -u 

    文件重命名:

        方案一:

        #mv readme readme.md

        #git add readme.md

        #git rm readme    原文件删除

        #git commit -m '内容'

        注:操作还原,清理暂存区所有变更

        #git reset --hard

        方案二:

        #git mv readme readme.md

        #git commit -m '内容'

    查看git版本历史:

        #git log --online    简洁方式查看历史

        #git log --n4  查看最近4次历史

        #git log --all 查看所有分支的版本历史

        #git log --all --graph  父子关系展示版本历史

        注:git branch -v 查看本地分支

    查看版本历史图形界面工具:

        gitk    

    git目录:

        查看git 配置文件

        #cat .git/config

        

        .git/refs/  下存在heads和tags文件,heads下是分支文件的指针文件;tags下文件是哈希值文件;.git/objects/下文件是上传的文件

        #cd e8

        #git cat-file -t e8xxxx   // 查看文案类型

        #git cat-file -p e8xxx   //查看文件内容

        #git cat-file -p b72xxx

    commit与tree与blob关系:(git对象的彼此关系)

     查看git分支/切换分支:

      git branch -av  //查看分支

      git checkout master  //切换分支

      git checkout -b 子分支 父分支   //创建基于父分支的子分支

     提交分支到远程:

      #git checkout --orphan cluster

      #git checkout cluster

      #git rm -rf .

      #vim README.md

      #git add README.md

      #git commit -m "ADD readme.md"

      #git push -u origin cluster 

    分离头指针:

      git checkout commit编号   //进入分离头指针

      文件编辑后,分离头要创建/加入某一分支

      git branch '分支名'  xxxxxx     //xxxx是分离头指针编号

     head和branch关系:

      head不仅可以指向分支,还可以指向某个文件(分离头指针)

      

    删除不需要的分支:

      git branch -D 分支名

           

    修改commit信息:

      git commit --amend

    修改老旧commit信息:

      git rebase -i commit的父ID  ==》进入说明文件 :wq! => 进入交互界面修改 ,保存  wq!

    连续的多个commit合并成一个:

      commit的父ID查看:

       git log --graph  选定commitID的下一个即为父commit

      #git rebase -i commit的父ID

      ==》修改文件

      假设要合并4个文件,则保留一个pick,3个修改成s

           再保存(wq!),进入交互界面

      修改文件,保存  wq!

    间隔的多个commit合并成一个:

      #git rebase -i 最下面的commitID

      =》 在文件的最上面增加pick 最下面的commitID ,要合并的commit放在一起,保留一个pick,其余修改成s

      其余步骤同上

    暂存区和head文件(最近commit的文件)差异:

      #git diff --cached  

    暂存区和工作区差异:

      #git diff

      #git diff -- readme.md //只比较readme.md文件差别

    暂存区所有文件不保留(暂存区与工作区一致):

      #git reset HEAD

    工作区文件恢复与暂存区一致:

      #git checkout -- <file>   //file 是文件名

     取消暂存区部分文件的更改:

      #git  reset HEAD -- <file ...>

    消除最近几只commit:

          #git reset --hard  commitID   // 恢复到指定commitID位置

    查看提交文件的差异://比较2个分支相同文件的差异

      #git diff 分支1  分支2  --  文件名

           #git diff commitID1 commitID2  -- 文件名

    删除文件:

      #git rm   file-name

      ex:删除远程仓库的目录/文件 

      #git rm -r --cached a/2.txt //删除a目录下的2.txt文件   删除a目录git rm -r --cached a
      #git commit -m "删除a目录下的2.txt文件" 
      #git push

    加塞任务

      #git stash   //暂存区放置缓存

      #git stash list

      #git stash apply  //缓存内容放置工作区,缓存信息不丢失

      #git stash pop  // 缓存内容放置工作区,缓存信息丢失

    git 仓库备份至本地

      

     本地仓库同步至远程:

      #git  remote add 别名  远程项目地址 

       #git remote -v  //查看远端别名连接地址

       #git push 别名  --all   //push 所有的分支

        

    合并分支:

      #  git fetch origin 最新版本的线上分支:新建一个本地的分支//从远程的origin仓库的最新版本的线上分支下载到本地,并新建一个本地的新分支

      #  git diff 新建的本地的分支

      # git merge 新建的本地的分支//将新建一个本地的新分支和本地分支合并

      #  git branch -D 新建的本地的分支

      #  解决冲突

      #  git add .

      #  git commit -m '合并+解决冲突'

      #  git pull origin 最新版本的线上分支

      # git push origin 我本地的分支:最新版本的线上分支

      

  • 相关阅读:
    指定pdf的格式
    iptables 防火墙
    jumpserver2
    jquery UI
    python 自动化审计
    Jumpserver
    认识二进制安全与漏洞攻防技术 (Windows平台)
    将这段美化的css代码
    pycharm
    android Tips
  • 原文地址:https://www.cnblogs.com/zy1234567/p/10432162.html
Copyright © 2011-2022 走看看