git学习笔记

git学习
  概念
    git跟踪的修改而非文件
    工作区:可见的目录文件夹
    版本库:
    工作区的一个隐藏目录:.git
    stage 暂存区 git add就是添加到暂存区
    新建的文件状态为untracked 是因为没有 add到暂存区,
    commit 会将暂存区的修改提交,但工作区的不会提交,哪怕你也修改了
    master 主分支 git commit 就是提交到当前分支
    head 指向master的指针,head 表示当前版本,head^上一版,head^100 上一百版
    origin 远程库的默认名称

  命令:
    git init 初始化
    git status 显示状态,那些修改过了
    git diff 修改了什么,后面可以跟文件名
    git diff -- readme.txt 对比当前版本和暂存区的
    git diff head^ -- readme.txt 对比上一版和当前的 readme.txt 前也可以加版本号
    git add 文件名 添加到暂存区
    git add -f aa.class 强制添加
    git commit -m '' 提交
    git log 显示提交历史(有版本号)
    git log --pretty=oneline --abbrev-commit 显示历史 commit id和命令
    git reflog 历史命令版本
    git reset --hard head^ 回退到上一版,head^100表示往上100版,没有push哦
    git reset --hard 版本号 回退到具体版本,版本号可以不写全,没有push哦
    git checkout -- readme.txt 丢弃工作区的修改,还没有add的内容
    git reset head readme.txt 撤销暂存区的内容,还没commit的,然后再checkout
    git rm readme2.txt 删除文件

    git remote add origin https://github.com/heroy/learngit.git 本地库添加到远程库
    git push -u origin master 首次将本地master推到远程origin库,-u是关联分支
    git push origin master 后续推送用此命令
    git clone git@github.com/heroy/gitstills.git 克隆仓库到本地


  远程
    ssh-keygen -t rsa -C "youremail@example.com" 创建SSH-key,密码可以为空
    在.ssh目录,id_rsa 为私钥,id_rsa.pub为公钥
  分支
    git branch dev 创建dev分支
    git checkout dev 切换到dev分支
    git checkout -b dev 创建并切换到dev分支
    git branch 查看分支
    git branch -d dev 删除分支 dev
    git branch -D dev 强行删除(如果分支没有merge,要用此)
    git merge dev 合并dev到master,(当前命令环境在master)
    git merge --no-ff -m '新commit模式' dev 合并dev,这种合并模式可以查看合并历史
    git stash 储藏挡墙状态
    git stash list 储存历史
    git stash apply 回复储存历史,但不删除,多个历史时可以 后缀历史编号:stash@{0}
    git stash drop 删除历史
    git stash pop 回复并删除
    git remote 显示远程分支 加 -v 显示详情
  标签
    git tag v1.0 在当前分支上打标签,标签是打在commit id上的,后面加commit id号 可以达到对应的
    git tag 查看标签
    git tag -a v1.1 -m 'version 1.1 带说明的' 12a3v3 带说明的标签
    git tag -s v1.2 -m 'version 1.2 带有私钥的' fec32a 私钥签名的标签
    git tag -d v1.1 删除标签
    git push origin v1.2 推送标签到远程库
    git push origin --tags 推送所有标签
    git push origin :refs/tags/v1.2 删除服务器标签(必须要先在本地删除)
    git show v1.0 查看标签详情

  其他
    vim readme.md vim模式编辑文本
    进入vim后,按esc退出输出状态,Shift+; 然后 q!(wq!是保存文件) 然后 回车
    git config 查看配置命令
    git cofnig -l 查看配置信息
    git check-ignore -v App.class 查看是否忽略
    工作区目录下 加一个 .gitignore文件 里面可以编写忽略的文件
    被忽略的文件 不可以add, 但可以 -f 强制添加
    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
    将后续命令简化为 lg

原文地址:https://www.cnblogs.com/heroy/p/5486920.html