Git操作笔记
 
    1.创建目录
        $ mkdir learngit
        $ cd learngit
 
    2.把新建的目录变成仓库
        $ git init
 
    3.将一个文件添加到版本库
        $ git add readme.txt
 
    4.将一个或者多个文件一起提交到版本库
        $ git commit -m "wrote a readme file"
 
 
 
    5.查看仓库的状态
        $ git status
 
    6.查看某个文件做了哪些改动
        $ git diff readme.txt
 
    7.查看历史记录
        $ git log(--pretty=oneline)
 
    8.回退上一个版本
        $ git reset --hard HEAD^  或 $ git reset --hard 3628164
 
    9.查看使用过的命令
        $ git reflog
 
    10.丢弃工作区的修改
        $ git checkout -- readme.txt
 
    11.撤销对暂存区的修改,重新放回工作区
        $ git reset HEAD readme.txt
 
        备注:回退修改小结:
                场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时(即未add),用命令git checkout -- file。
 
                场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改(即add但是没commit),分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
 
                场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交(即commit了),使用$ git reset --hard HEAD^  或 $ git reset --hard 3628164进行版本回退,不过前提是没有推送到远程库。
    12.删除一个文件
        $ git rm test.txt
 
 
    关联远程库步骤:
        要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
 
        关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
 
        此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
 
    13.关联一个远程库
        $ git remote add origin git@github.com:jhscpang/learngit.git(ssh不太好用,用https版,见下一行不太好用,用https版,见下一行)
        git remote add origin https://github.com/jhscpang/learngit.git
 
    14.把本地的内容推送到远程服务器
        $ git push -u origin master
 
    15.克隆一个本地仓库
        $ git clone git@github.com:pangchao620/gitskills.git(ssh不太好用,用https,见下一行)
        $ git clone https://github.com/jhscpang/learngit.git
 
 
    16.创建一个分支
        $ git checkout -b dev 
            备注:git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
                                    $ git branch dev
                                    $ git checkout dev
 
    17.查看当前分支
        $ git branch
 
    18.切换分支
        $ git checkout master
 
    19.合并指定分支到当前分支
        $ git merge dev (默认是快进模式合并)(假设当前分支是master分支,则此命令是将dev分支合并到master分支)
        如果禁用快进模式使用如下命令:
        $ git merge --no-ff -m "merge with no-ff" dev 
            (通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
              如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
             )
 
    20.删除分支
        $ git branch -d dev
        强行删除一个分支:$ git branch -D dev
 
    21.查看分支合并情况
        $ git log --graph --pretty=oneline --abbrev-commit
 
    22.将还不能提交的现场存储起来
        $ git stash
 
    23.查看存储地点
        $ git stash list
 
    24.还原存储内容
        $ git stash pop 或 git stash apply
        备注:(用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
                另一种方式是用git stash pop,恢复的同时把stash内容也删了)
 
    25.恢复指定地点的存储内容
        $ git stash apply stash@{0}
 
    26.查看远程库的信息
        $ git remote -v 或 $ git remote
 
    27.当你的小伙伴要在dev分支(非master分支)上开发,就必须在本地创建和远程分支对应的分支
        $ git checkout -b dev origin/dev  (如果报错,这么解决:git fetch origin)
 
    28.从本地推送分支
        $ git push origin branch-name
 
    29.从远程抓取分支
        $ git pull
 
    30.创建本地分支和远程分支的链接关系解决pull失败
        $ git branch --set-upstream-to=origin/dev dev
 
    31.创建标签             或者        创建带有说明的标签,用-a指定标签名,-m指定说明文字
        $ git tag <name> 或者        $ git tag -a v0.1 -m "version 0.1 released" 3628164
 
    32.查看所有标签      或者       查看标签信息
        $ git tag         或者        git show <tagname>
 
    33.给历史版本打标签
        $ git tag v0.9 <commit id>
 
    34.删除标签
        $ git tag -d v0.1
        备注:(如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除,
                    $ git tag -d v0.9
                    再从远程删,
                    $ git push origin :refs/tags/v0.9
                )
 
    35.推送某个标签到远程
        $ git push origin <tagname>
 
    36.一次性推送全部尚未推送到远程的本地标签
        $ git push origin --tags
 
    总结:
    多人协作模式步骤:
        1.先将文件夹初始化成git本地库
            $ mkdir testgit
            $ cd testgit
            $ git init
        2.为该本地库关联一个远程库
            $ git remote add origin https://github.com/jhscpang/learngit.git
        3.如果不用默认的master分支开发,则要新建分支(例如dev分支),并且该新建的分支要和远程库的相对应的分支建立关联(因为本地库到最后要和远程库同步)
            $ git checkout -b dev origin/dev
            (此时要是报错,则使用命令 $ git fetch origin解决,
              并再次输入git checkout -b dev origin/dev一次)
        4.(上面成功后,此时已经在dev分支上),克隆远程库里的内容
            $ git clone https://github.com/jhscpang/learngit.git
        5.对文件进行操作(例如vim test.txt),然后将修改了的文件从工作去添加到本地库的暂存区
            $ git add test.txt
        6.将暂存区的文件提交到本地库
            $ git commit -m "add test.txt"
        7.将本地库的分支推送到远程库对应的分支,实现同步
            $ git push origin dev
        8.如果push时遇到冲突,则将远程库的的新内容pull到本地,再修改完冲突后,重新做5-7步
            $ git pull
        9.如果pull出错no tracking information,则说明本地分支和远程分支的链接关系没有创建,输入如下命令解决,然后再pull就可以了
            $ git branch --set-upstream-to=origin/dev dev

分享git的常用命令的更多相关文章

  1. GIT 版本控制常用命令学习汇总

    GIT 版本控制常用命令汇总 git version 查看当前git版本信息 git help 获取全部命令帮助信息 git help <command> 获取指定命令帮助信息 git c ...

  2. git log 常用命令及技巧

    git log常用命令以及技巧 1.git log 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者.提交日期.和提交说明.如果记录过多,则按Page Up.Pag ...

  3. Git基本常用命令

    Git基本常用命令如下: mkdir: XX (创建一个空目录 XX指目录名) pwd: 显示当前目录的路径. git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件. git ...

  4. Git是什么、Git的功能、为什么versioncontrol用Git、Git的常用命令、Git的优缺点

    Git是什么 git是目前世界上最先进的分布式版本控制系统(没有之一). Git是用于 Linux内核开发的版本控制工具.与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版 ...

  5. Git stash 常用命令

    参考: Git: How to look at the stash Git学习笔记05--git stash Git stash 常用命令 1.git stash: 保存当前的工作进度: 2.git ...

  6. Git 基础 —— 常用命令

    Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 git init 创建 Git ...

  7. git之常用命令

    git之常用命令 1.下载远程仓库最新代码 $ git pull --rebase origin master 2.上传代码 $ git push origin master 3.退出编辑 ESC + ...

  8. git的常用命令。。

    git的常用命令.. git help <command>  显示command的help git show  显示某次提交的内容 git show $id git co -- <f ...

  9. Git - Git基本常用命令

    Git基本常用命令 mkdir:         XX (创建一个空目录 XX指目录名) pwd:          显示当前目录的路径. git init          把当前的目录变成可以管理 ...

随机推荐

  1. Hadoop入门进阶课程12--Flume介绍、安装与应用案例

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  2. 数据库收缩:NOTRUNCATE与TRUNCATEONLY

    在进行数据库收缩时,我们有2个可用选项:NOTRUNCATE,TRUNCATEONLY.这篇文章我们会详细讨论下这2个选项的具体区别. NOTRUNCATE 当你对数据库收缩命令提供NOTRUNCAT ...

  3. 更加优雅地搭建SSH框架(使用java配置)

    时代在不断进步,大量基于xml的配置所带来的弊端也显而易见,在XML配置和直接注解式配置之外还有一种有趣的选择方式-JavaConfig,它是在Spring 3.0开始从一个独立的项目并入到Sprin ...

  4. ASP.NET身份验证

    Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验 证用的最多,也最灵活. Forms 验证方式对基于用户的验证 ...

  5. C#开发体感游戏 Kinect应用知识

    Kinect首先是一个XBox 360外接体感设备,通过无线方式捕捉动作感知.由PrimeSense提供Range Camera技术,同类产品如任天堂Wii.Play Station Move,必须让 ...

  6. 【jQuery基础学习】07 jQuery表单插件-Form

    作用:jQuery Form插件的作用是为了让我们可以很方便地用ajax的方式提交表单,从而使我们提交表单的时候页面不用进行刷新. 它的核心方法是ajaxForm()和ajaxSubmit() 升级表 ...

  7. Wijmo金融图表系列之等量图&成交量柱状图

    Wijmo金融图表有很多类型,我们来一一介绍.之前介绍了平均K线图(Heikin-Ashi)和砖形图,现在我们来一起看看等量图和成交量柱状图. 图表 #3: 等量图(EquiVolume) 等量图和K ...

  8. cURL和HTTPie

    http://lingxiankong.github.io/blog/2014/08/19/curl-httpie/ 前两天在网上看到一个号称比cURL更牛逼的命令行工具HTTPie,提供命令行交互方 ...

  9. 【洛谷 p3386】模板-二分图匹配(图论)

    题目:给定一个二分图,结点个数分别为n,m,边数为e,求二分图最大匹配数. 解法:匈牙利算法.(以前我总是不记得......)实质上应该有贪心的思想,每次都尽量匹配,找到能和自己匹配的也尽量让它们匹配 ...

  10. Android图像处理之Bitmap类

      Bitmap是Android系统中的图像处理的最重要类之一.用它可以获取图像文件信息,进行图像剪切.旋转.缩放等操作,并可以指定格式保存图像文件.本文从应用的角度,着重介绍怎么用Bitmap来实现 ...