zoukankan      html  css  js  c++  java
  • Git常用指令

    根据廖雪峰的Git教程整理而来

    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"
        因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心。 注意gitconfig命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
    git中的命令
    git init            #初始化一个git仓库
    git add filename    #添加如果各文件到git仓库
    git status          #查看当前工作区的状况,一般还会给你建议
    git diff readme.txt #readme.txt 被修改后还没被add、commit,这时可以比较不同点

    git log             #由近到远显示commit id + commit message
        git log --pretty=oneline    #一行显示一条commit记录
    git reset --hard HEAD^      #返回上一个历史版本
       git reset --hard 7bit_id HEAD表示当前的版本,HEAD^^表示上上一个版本,HEAD~100表示之前的第100个版本,其实就是一个指针
    git reflog  --pretty=oneline    #显示在某个仓库中使用过的命令历史记录,每个后面都有一个commitid,这样可以回到已经去过的未来

    理解 working flow, stage(index)的概念,以提交一次文件(的两步)为例说明上面的过程。

    git checkout -- readme.txt 有两个作用:
        i)如果仅仅想撤销工作区的修改,可以使用这个命令
        ii)如果工作区中的readme.txt文件被删除了,那么可以使用这个这个命令吧stage中的这个回复文件衣服到工作区。
        
    git reset HEAD readme.txt
        如果readme.txt在工作区的修改已经add到了stage,这时可以用这个指令。
        让后在使用checkout 指令,撤销工作区中的修改。不能直接使用checkout命令

    ssh-keygen -t rsa -C "1373779753@qq.com"    #生成 SSH Key
    clip < ~/.ssh/id_rsa.pub    #把公共密钥拷贝到剪贴板。

    git remote add origin git@server-name:path/repo-name.git    #关联一个远程库
    git push -u origin master               第一次推送master分支的所有内容
           此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

    git checkout -b dev     #创建一个新分支之后,-b参数表示切换到新分支上。
        其实上面相当于下面两条命令,仔细观察上面的符合指令符合右结合的特性。
           git branch dev
           git checkout dev
    git branch      #查看当前分支
        git branch命令会列出所有分支,当前分支前面会标一个*号
    git branch dev   #创建分支dev
    git checkout branch-name    #切换分支到dev
    git checkout -b name      #创建加切换分支 一块 dev
    git merge name             #dev
    git branch -d dev           #删除分支dev

    当合并分支发生冲突时,打开冲突的文件,修改,然后在add->commit之后冲突就会修复
    $ git log --graph --pretty=oneline --abbrev-commit  #查看分支合并图

    git merge --no-ff -m "merge with no-ff" dev
        强制关闭fast-forward模式,然后合并dev分支,并提交一个commit
        这种合并的好处是,可以使用git log --graph 产看到合并图,而fast-forward则不行
        
    git stash   #当前分支上面的工作还没做完不能提交,但是又必须要离开,就可以使用这个指令来保存现场
    git stash list  #查看所有的保存点

    回复stash保存的工作现场的方法:
        git stash apply stash@{0}  #恢复到stash@(0) 工作现场
        git stash drop stash@{0}    #删除{0}工作现场
        或者下一条指令,直接完成上面两部的工作:
        git stash pop

    如果要丢弃一个没有被合并过的分支,可以通过
        git branch -D branch-name 强行删除    

    git remote -v 查看远程库信息
    本地新建的分支如果不推送到远程,对其他人就是不可见的;
    git push origin branch-name #本地推送分支
        如果推送失败,Git 会提醒先用git pull抓取远程的新提交
    git checkout -b branch-name origin/branch-name  #在本地创建和远程分支对应的分支
        本地和远程分支的名称最好一致。
    git branch --set-upstream branch-name origin/branch-name  #建立本地分支和远程分支的关联
    git pull    #远程抓取分支,抓取下来的远程分支如果和本地有冲突,要先处理冲突

    git tag tagName     #用于创建一个标签,默认为HEAD指定的commit 可以通过commit id来指定
    git tag -a tagName -m "blablabla..."    #可以指定标签信息
    git tag -s tagname -m "blablabla..."    #可以用PGP签名标签
    git tag             #可以查看所有标签

    git push origin <tagname>可以推送一个本地标签
    git push origin --tags可以推送全部未推送过的本地标签
    git tag -d <tagname>可以删除一个本地标签
    git push origin :refs/tags/<tagname>可以删除一个远程标签                          如果一个标签已经推送到了远程,要想删除远程的标签的话:分两步:先删除本地的标签,再删除远程的标签

  • 相关阅读:
    纯JS实现俄罗斯方块,打造属于你的游戏帝国
    Java 集合框架
    项目(1-2)ES32获取mpu9250传入数据库
    项目(1-1)ES32获取mpu9250数据网页交互显示
    开发(三)ESP32 硬件配置
    开发(二) ardunio批量固件上传地址
    项目(1-1)人脸识别
    海康相机开发(1) SDK安装和开发
    ARDUNIO IMU processing姿态数据可视化
    ESP8266 tcp透传AP+STA
  • 原文地址:https://www.cnblogs.com/OliverZhang/p/7217517.html
Copyright © 2011-2022 走看看