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

    git常用命令:

        进入新项目文件夹后:
       
            git init            初始化,建立本地git版本库

            git add .           将当前目录文件添加到暂存区
            git status          查看git当前状态
            git commit -m ""    将暂存区文件提交到git版本库,并添加版本信息
           
            git log             查看当前版本之前的历史版本
            git log --pretty=oneline        单行显示历史版本的版本号和版本信息(--pretty=oneline)
            git log --pretty=oneline --abbrev-commit            单行查看提交历史,且简写版本号(--abbrev-commit)
            git log --graph --pretty=oneline --abbrev-commit    查看分支合并历史(--graph)
            git reflog          查看所有历史版本
            git reset --hard <commit>       回滚到对应版本,版本号也可写:HEAD:当前版本,HEAD^:上一版本,HEAD^^:上上版本
            get reset HEAD <filename>       撤销暂存区修改
           
            git diff <filename>                 对比工作区和最新版文件的不同
            git diff <commit> -- <filename>     对比工作区和指定版本文件的不同
            git checkout -- <filename>          直接丢弃工作区的修改,回到暂存区(优先)或者版本库的状态
            git rm <filename>                   在执行 rm 文件名 之后再执行此条语句,从版本库中删除文件,之后要还要进行git commit操作才能生效
           
            git revert <commit>     撤销commit,reset --hard只对当前分支有效,且再次merge其他分支时仍然会带入reset之后的内容。当commit是merge类型时要格外注意,再次merge之前的分支前要先revert之前的revert,详见http://blog.psjay.com/posts/git-revert-merge-commit/
       
        stash相关常用命令:
       
            git stash           将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态
            git stash list      查看“某个地方”存储的所有记录
            git stash clear     清空“某个地方”
            git stash pop       将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
            git stash apply {序号} 或者 编号      将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
            git stash drop      编号,删除指定编号的记录
       
        branch相关常用命令:

            git branch <branch>         创建分支
            git checkout <branch>       切换分支
            git checkout -b <branch>    创建并切换到新分支
            git checkout -              切换到上一个分支
            git branch -m <branch>      重命名分支
            git branch                  查看所有分支
            git branch -d <branch>      删除分支
            git merge <branch>          将指定分支合并到当前分支
       
        标签(eg:v1.0)相关常用命令:(标签不是按时间顺序列出,而是按字母排序的;创建的标签都只存储在本地,不会自动推送到远程)
       
            git tag <tagname>   默认标签是打在最新提交的commit上
            git tag             查看所有标签
            git tag <tagname> <commit>  为指定版本打标签
            git show <tagname>          查看标签信息
            git tag -a <tagname> -m "" <commit>   创建有说明文字的标签,-a指定标签名,-m指定说明文字
            git tag -d <tagname>        删除本地标签
            git push origin <tagname>   推送某个标签到远程
            git push origin --tags      一次性推送全部尚未推送到远程的本地标签
            git push origin :refs/tags/<tagname>     在删除本地标签之后执行此命令,删除远程标签
       
        远程相关常用命令:
       
            Git支持多种协议,默认的git://使用ssh(配置公钥),但也可以使用https(配置用户名密码)等其他协议。
            使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。通过ssh支持的原生git协议速度最快。
           
            git remote add origin https://github.com/WuPeiqi/pondo.git      为地址起一个别名origin
            git remote add origin git@github.com:michaelliao/learngit.git   # ssh格式
           
            git clone git@github.com:michaelliao/gitskills.git          克隆一个远程库到本地
           
            git push -u origin master           第一次将本地master分支内容以及版本信息推送到远程仓库,并把本地的master分支和远程的分支(别名为origin)关联起来
            git push origin master              将本地master分支内容以及版本信息推送到远程分支
           
            git branch dev origin/dev                                   创建dev分支且和远程dev分支同步
            git checkout -b branch-name origin/branch-name              在本地创建和远程分支对应的分支
            git branch --set-upstream branch-name origin/branch-name    建立本地分支和远程分支的关联
           
            git pull origin dev                 从远程仓库获取dev分支最新内容,并合并到本地,等同于fetch+merge
            git fetch origin dev                从远程仓库获取dev分支最新内容到版本库
            git merge origin/dev                将版本库的分支内容合并到工作区(注意:fetch远程分支后,在本地merge的分支名为origin/dev)
            git merge --no-ff -m "merge with no-ff" dev         禁用Fast forward,保留分支合并信息(--no-ff)
           
            git remote          查看远程库信息
            git remote -v       查看远程库详细信息
            git remote rm origin    删除已有的远程库别名
       
            一个本地库同时关联两个远程库:(别名冲突时先删除再重新定义)
                先关联GitHub的远程库:
                    git remote add github git@github.com:michaelliao/learngit.git
                再关联码云的远程库:
                    git remote add gitee git@gitee.com:liaoxuefeng/learngit.git
                如果要推送到GitHub,使用命令:
                    git push github master
                如果要推送到码云,使用命令:
                    git push gitee master
       
        其他常用命令:
       
            git version         查看git版本
            ssh-keygen -t rsa -C "youremail@xxx.com"   创建密钥(用户主目录/.ssh/id_rsa.pub)

            git config --global color.ui true 显示颜色
           
            创建.gitignore并写入要忽略的文件:*.idea/*  *.pyc(通常在github有提供已写好的.gitignore)
                git add -f App.class            强制添加文件(属于被忽略类型)
                git check-ignore -v App.class   检查忽略文件的相应规则
           
            配置别名:
            eg: git config --global alias.st status     相当于st等于status
                git config --global alias.co checkout
                git config --global alias.ci commit
                git config --global alias.br branch
                git config --global alias.unstage 'reset HEAD'  执行git unstage xxx等于git reset HEAD xxx
                git config --global alias.last 'log -1'         配置一个git last,让其显示最后一次提交信息
                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"      显示合并树,版本号(简写),版本信息,提交时间,提交人
       
        Git的配置文件有三个:

            系统配置: /private/etc/gitconfig
            用户配置: ~/.gitconfig      (用户主目录下.gitconfig)
            项目配置:.git/config

  • 相关阅读:
    发布在《30天自制操作系统》之前的操作捷径必读贴
    写在《30天自制操作系统》上市之前
    JS跨域代码片段
    C#简单操作XML
    Application Session Cookie ViewState Cache Hidden 区别
    C# string 特殊引用类型
    精通CSS高级Web标准解决方案:相对定位与绝对定位
    精通CSS高级Web标准解决方案:浮动
    精通CSS高级Web标准解决方案:背景图像基础
    char、varchar、nchar、nvarchar的区别
  • 原文地址:https://www.cnblogs.com/yx179971/p/7586660.html
Copyright © 2011-2022 走看看