美文网首页
Git 学习笔记

Git 学习笔记

作者: Hi_Alice | 来源:发表于2017-11-03 18:50 被阅读14次

    前言:一直知道分布式版本控制系统git,但是无奈从来没有用过,有幸,最近公司开始改用git,故,利用上班空余时间,系统的学习了一下,以下便是我对git命令的一些总结。

    来源https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

    INSTALL 安装

    本人用的正是号称最烂开发平台的windows操作系统,默认环境为windows (默默攒钱买Mac。。。。。)

    下载网址:https://git-for-windows.github.io

    安装完成之后,Git里面会有三个应用,分别是,GUI、CMD、Bash
    打开Git Bash 完成基础设置

    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"

    设置完成后 会在用户主目录下面的一个隐藏文件.gitconfig里发现所设置的情况

    CREATE 创建

    $ mkidr <catalogue name> ——————创建空目录
    $ pwd ——————显示当前目录
    $ git init ——————创建一个新的本地版本库
    $ ls -ah ——————查看隐藏目录

    创建目录时请确保目录名不包含中文

    创建SSH Key

    $ ssh-keygen -t rsa -C “youremail@example.com

    设置完成后 会在用户主目录找到.ssh目录, [id_rsa]是私钥,[id_rsa.pub]是公钥

    注册一个github帐号,将你的公钥添加进去,你就获得了一个Git远程仓库了

    $ git remote add origin git@server-name:path/repo-name.git——————关联一个远程库
    $ git push -u origin master ——————推送master分支的所有内容
    $ git push origin master ——————推送最新修改
    $ git clone <address> ——————从远程版本库克隆

    address支持多种协议,包括https,但通过ssh支持的原生git协议速度最快

    LOCAL CHANGES 本地更改

    $ git add . ——————将所有当前更改添加到下一个更改
    $ git add -p <file> —————— 在文件到下一个提交中添加一些更改
    $ git add -f <file> ——————强制添加
    $ git commit -m "<explain>" ——————把文件提交到仓库
    $ git commit -a ——————提交跟踪文件中的所有本地更改
    $ git commit . ———————提交之前更改
    $ git commit --amend ——————提交最后一次更改
    $ git status ——————查看仓库当前状态
    $ git diff ——————追踪文件更改
    $ git diff HEAD -- <file> ——————查看工作区和版本库里面最新版本的区别
    $ git rm <file> ——————删除文件

    COMMIT HISTORY 提交历史

    $ git log ——————显示最近到最远的提交日志
    $ git log --pretty=oneline ——————一列显示日志信息
    $ git log --pretty=oneline --abbrev-commit ——————一列显示日志信息 缩写
    $ git log -p <file> —————— 显示更改特定文件的日志信息
    $ git blame <file> —————— 显示在特定文件中谁更改了什么
    $ git reflog ——————查看命令历史
    $ git log --graph ——————查看分支合并图

    UNDO 撤销

    $ git reset --hard HEAD ——————回退到当前版本
    $ git reset --hard HEAD^ ——————回退到上个版本
    $ git reset --hard HEAD^^ ——————回退到上个个版本
    $ git reset --hard HEAD~100 ——————回退到上100个版本
    $ git reset --hard <commit> ——————回退到指定版本
    $ git reset HEAD <file> ——————撤销暂存区的修改,重新放回工作区
    $ git reset <commit>——————回退到指定版本并保存所有变化
    $ git reset --keep <commit> ——————回退指定版本并保留未提交的本地更改
    $ git checkout -- <file> —————— 丢弃本地更改
    $ git checkout HEAD <file> —————— 丢弃特定文件中的本地更改
    $ git revert <commit> ——————恢复更改

    BRANCHES & TAGS 分支和标签

    $ git branch ——————查看分支
    $ git branch -av ——————查看全部的分支列表
    $ git branch <name> ——————创建分支
    $ git checkout <name> ——————切换分支
    $ git checkout -b <name> ——————创建+切换分支
    $ git checkout --track <remote/branch> —————— 基于远程分支创建一个新的分支
    $ git branch -d <name> ——————删除分支
    $ git branch -D <name>——————强行删除分支
    $ git merge <name> ——————合并某分支到当前分支,fast forward模式,无分支历史记录
    $ git merge --no-ff -m "explain" <name> ——————普通模式合并,合并后有历史记录
    $ git tag <tag-name> —————— 打一个新标签
    $ git tag ——————查看所有标签
    $ git tag -a <tagname> -m "explain" ————指定标签信息
    $ git tag -s <tagname> -m "explain" ——————用PGP标签签名
    采用PGP签名,需要安装GnuPg,至于如何使用和配置gpg,请移步:http://www.williamlong.info/archives/3439.html
    $ git stash ——————隐藏当前工作现场
    $ git stash list ——————查看工作现场
    $ git stash apply ——————恢复工作区 不删除stash
    $ git stash pop ——————恢复工作区 删除stash

    UPDATE & PUBLISH 更新和发布

    $ git remote -v —————— 显示远程库详细信息
    $ git remote show <remote> —————— 显示有关远程的信息
    $ git remote rm origin ——————删除远程库
    $ git fetch <remote> —————— 下载所有远程更改但是不与当前版本合并
    $ git pull <remote> <branch> —————— 抓取远程库的新提交
    $ git push <remote/branch> —————— 从本地推送
    $ git checkout -b branch-name origin/branch-name ——————在本地创建和远程分支对应的分支,本地和远程分支的名称最好一致
    $ git branch --set-upstream branch-name origin/branch-name ——————建立本地分支和远程分支的关联
    $ git push --tags —————— 推送标签
    $ git push origin <tagname> ——————推送一个本地标签
    $ git push origin --tags ——————推送全部未推送的本地标签
    $ git push origin :refs/tags/<tagname> ——————删除一个远程标签

    OTHER 其他

    $ cat <file> ——————查看文件内容
    $ git config --global color.ui true ——————让Git显示颜色

    设置忽略特殊文件 .gitignore

    配置文件地址:https://github.com/github/gitignore

    $ git check-ignore -v <file>——————检查对应文件.gitignore配置规则

    偷懒好大法

    $ git config --global alisa.<别名> <命令名> ——————配置别名

    常见别名设置:

    1.$ git config --global alias.st status
    2.$ git config --global alias.co checkout
    3.$ git config --global alias.ci commit
    4.$ git config --global alias.br branch
    5.$ git config --global alias.unstage 'reset HEAD'
    6.$ git config --global alias.last 'log -1'
    7.$ 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"

    说明:--global命令是对当前用户起作用,如果不加,就只针对当前仓库起作用
    每个仓库的Git配置文件都放在.git/config中

    总结 :

    熟记命令,多敲多练,该偷懒时,就偷懒,哈哈

    OK 好好学习,天天向上,加油!!!

    相关文章

      网友评论

          本文标题:Git 学习笔记

          本文链接:https://www.haomeiwen.com/subject/tfzopxtx.html