• git命令?


     

    #文件及文件夹创建删除
        mkdir  文件名称    (创建文件夹)
        touch  文件名称    (创建文件)
        rm -r  文件名称     (递归删除)
        rm -rf 文件名称   (删除文件夹内的所有 无提示)
        rmdir 文件名称    (删除文件夹)

    #查看.搜索.历史
        ls -a 查看所有    (包括隐藏目录)
        ls -l 查看        (以列表的形式显示)
        head  -行数 文件名称      (查看文件前多少行)
        history                  (查看历史操作命令)
        ls | grep s        (| 管道符 用于传递参数   将ls的查询结果 作为参数传递给 grep 查找其中包含s的内容)

    #复制.写入
        ls >index.html            (重定向:改变默认 重定向另一位置)
        echo 内容>要写入的文件     (覆盖原有内容)
        echo 内容>>要写入的文件     (追加内容)
        mv a.text 目录/新名称      (移动)
        cp a.text 目录/新名称      (复制)

    #请求    
        wget 网址              (下载文件)
        curl http://www.baidu.com   (发送请求)
        curl http://www.baidu.com > 要写入的文件
        whoami                (查看当前用户)
        ssh status@192.168.141.95        (第一次请求 服务器会发来一个公钥 加密后  发给服务器 对方用自己的私钥解密 )

    #vi模式
        ##底行模式
            set nu             (设置行号)
            wq                (退出保存)
            q!                (退出不保存)
            /要搜索的内容      (在vi模式下 n为下一个目标元素 )
            e!                 (撤销更改,返回到上一次保存的状态)
            
        ##命令模式
            -u                 (撤销操作)
            yy 复制  p粘贴
            G                (光标移动到最下面)
            gg                (光标移动到最上面)
            dd                (删除行)
            i                (编辑模式 可写入内容)
            ZZ                (大写 保存并退出)
            u                (辙销操作,可多次使用)
            ctrl+f            (向前翻页)
            ctrl+b            (向后翻页)

    #版本控制
        svn(集中式) : 缺点
            1 由于是集中式版本控制系统所以严重依赖与服务器
            2 严重依赖网络
        Git(分布式)
            1 不需要中央服务器 每个人一个完整的版本库
            2 版本库来自本地 不受网络限制


    #git的使用
        ##git命令
            1 git init      (初始化仓库 或将以后的克隆到本地.giy/)
            2 git add -A    (放入暂存区有三种方法   路径/名称   -A  * )
            
            3 git commit -m'备注信息'                  (从暂存区放入仓库)
            4 git config --global user.email 邮箱      (config只需要配置一次)
              git config --global user.name  用户名
            
            5 git log                 (查看当前版本 以及历史存盘点)
            6 git status             (查看当前厂库状态 那些被修改了)
            
            7 git checkout 文件名             (暂存区还原原到工作区)
            8 git reset --hard 提交的id         (每次提交时候都会生成一个id标示 git log可以查看)

     

        ##分支
            git branch         分支名称        (创建分支)
            git checkout  分支名称        (切换分支)
            git checkout -b 分支名称     (快捷方式  创建并切换到新创建的分支)
            git branch                    (查看有那些分支 -a[可选参数 所有本地+远程仓库分支])
            git branch -d 分支名称        (删除分支 -D强行删除)
            git merge     分支名称        (合并分支)
        
        ##远程仓库
            ##创建仓库条件
                1 xxx.git结尾目录
                2 必须是一个 '裸仓库' git  init --bare
            
            ##远程操作
                git push 账户名@地址id:路径 要上传的分支    
                git pull 账户名@地址id:路径 要上传的分支
                
                git remote and itcast student@192.168.141.95:/home/student/itcast.git  
                git remote add 新名字(类似别名)  老地址         (自己起个文件名)
                git remote         (可以查看已添加的远程主机)
                git remote show (主机名称”可以查看远程主机的信息)
                
            ##生成密钥
                ssh-keygen -t rsa        (后面一路回车 当前用户会生成一个.ssh文件夹)
                    id_rsa        (密钥)
                    id_rsa.pu    (共钥)
            
            ##git pages 网页托管

     

    标签管理

    创建标签

    在Git中打标签非常简单,首先,切换到需要打标签的分支上:

    $ git branch
    * dev
      master
    $ git checkout master
    Switched to branch 'master'

    然后,敲命令git tag <name>就可以打一个新标签:

    $ git tag v1.0

    可以用命令git tag查看所有标签:

    $ git tag
    v1.0

    默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?

    方法是找到历史提交的commit id,然后打上就可以了:

    $ git log --pretty=oneline --abbrev-commit
    12a631b (HEAD -> master, tag: v1.0, origin/master) merged bug fix 101
    4c805e2 fix bug 101
    e1e9c68 merge with no-ff
    f52c633 add merge
    cf810e4 conflict fixed
    5dc6824 & simple
    14096d0 AND simple
    b17d20e branch test
    d46f35e remove test.txt
    b84166e add test.txt
    519219b git tracks changes
    e43a48b understand how stage works
    1094adb append GPL
    e475afc add distributed
    eaadf4e wrote a readme file

    比方说要对add merge这次提交打标签,它对应的commit id是f52c633,敲入命令:

    $ git tag v0.9 f52c633

    再用命令git tag查看标签:

    $ git tag
    v0.9
    v1.0

    注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息:

    $ git show v0.9
    commit f52c63349bc3c1593499807e5c8e972b82c8f286 (tag: v0.9)
    Author: Michael Liao <askxuefeng@gmail.com>
    Date:   Fri May 18 21:56:54 2018 +0800
    
        add merge
    
    diff --git a/readme.txt b/readme.txt
    ...

    可以看到,v0.9确实打在add merge这次提交上。

    还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

    $ git tag -a v0.1 -m "version 0.1 released" 1094adb

    用命令git show <tagname>可以看到说明文字:

    $ git show v0.1
    tag v0.1
    Tagger: Michael Liao <askxuefeng@gmail.com>
    Date:   Fri May 18 22:48:43 2018 +0800
    
    version 0.1 released
    
    commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (tag: v0.1)
    Author: Michael Liao <askxuefeng@gmail.com>
    Date:   Fri May 18 21:06:15 2018 +0800
    
        append GPL
    
    diff --git a/readme.txt b/readme.txt
    ...

     注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

     

     

    操作标签:

    如果标签打错了,也可以删除:

    $ git tag -d v0.1
    Deleted tag 'v0.1' (was f15b0dd)

    因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。

    如果要推送某个标签到远程,使用命令git push origin <tagname>

    $ git push origin v1.0
    Total 0 (delta 0), reused 0 (delta 0)
    To github.com:michaelliao/learngit.git
     * [new tag]         v1.0 -> v1.0

    或者,一次性推送全部尚未推送到远程的本地标签:

    $ git push origin --tags
    Total 0 (delta 0), reused 0 (delta 0)
    To github.com:michaelliao/learngit.git
     * [new tag]         v0.9 -> v0.9

    如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

    $ git tag -d v0.9
    Deleted tag 'v0.9' (was f52c633)

    然后,从远程删除。删除命令也是push,但是格式如下:

    $ git push origin :refs/tags/v0.9
    To github.com:michaelliao/learngit.git
     - [deleted]         v0.9

    要看看是否真的从远程库删除了标签,可以登陆GitHub查看。

     

    操作标签

    阅读: 188580

    如果标签打错了,也可以删除:

    $ git tag -d v0.1
    Deleted tag 'v0.1' (was f15b0dd)
    

    因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。

    如果要推送某个标签到远程,使用命令git push origin <tagname>

    $ git push origin v1.0
    Total 0 (delta 0), reused 0 (delta 0)
    To github.com:michaelliao/learngit.git
     * [new tag]         v1.0 -> v1.0
    

    或者,一次性推送全部尚未推送到远程的本地标签:

    $ git push origin --tags
    Total 0 (delta 0), reused 0 (delta 0)
    To github.com:michaelliao/learngit.git
     * [new tag]         v0.9 -> v0.9
    

    如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

    $ git tag -d v0.9
    Deleted tag 'v0.9' (was f52c633)
    

    然后,从远程删除。删除命令也是push,但是格式如下:

    $ git push origin :refs/tags/v0.9
    To github.com:michaelliao/learngit.git
     - [deleted]         v0.9
    

    要看看是否真的从远程库删除了标签,可以登陆GitHub查看。

    小结

    • 命令git push origin <tagname>可以推送一个本地标签;

    • 命令git push origin --tags可以推送全部未推送过的本地标签;

    • 命令git tag -d <tagname>可以删除一个本地标签;

    • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

  • 相关阅读:
    gdb remote 使用
    gdb调试的layout使用
    经典名言--教父
    GDB dump mem example和命令
    再谈音响的七个频段,个个是真理
    Ubuntu 16.04下GDB调试
    shell脚本中if的“-e,-d,-f”
    ubuntu下makeinfo安装,其实真正安装的是texinfo包
    【svn】svn的使用
    【linux】监控磁盘情况并自动删除备份文件
  • 原文地址:https://www.cnblogs.com/lmh001/p/9791608.html
Copyright © 2020-2023  润新知