• Git 学习


    1.1 分布式版本控制系统( Distributed Version Control System,简称 DVCS )
    1.2 对于任何一个文件,在Git内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。
    1.3 安装git,略。各个平台版本都有的
    1.4 git初始配置。默认也行
    2.1 要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行
        $ git init  //在工作目录中初始化新仓库
    现在,你已经得到了一个实际维护着若干文件的 Git 仓库。
    2.2 克隆仓库到当前目录的命令格式为 git clone [url]
        $ git clone git://github.com/schacon/grit.git
        $ git clone git://github.com/schacon/grit.git mygrit    //这样可以重定义了项目目录名称
    2.3 $ git status     // 检查文件状态    
    2.4 纳入版本控制,跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等
        $ git add  <filenameopath>    //加跟踪的文件或目录路径,把其放入暂存区域
        $ git add  *.c 
        $ git add  .              //加入所有
    2.5 忽略某些文件,创建一个名为 .gitignore 的文件,列出要忽略的文件模式,格式规范如下:

    所有空行或者以注释符号 # 开头的行都会被 Git 忽略。可以使用标准的 glob 模式匹配。 

    *匹配模式最后跟反斜杠(/)说明要忽略的是目录。 *要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

    所谓的 glob 模式是指 shell所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如[0-9] 表示匹配所有 0 到 9 的数字)。
    2.6 查看已暂存和未暂存的更新
        $ git diff   //此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容。
        $ git diff --cached    //看已经暂存起来的文件和上次提交时的快照之间的差异
        $ git diff --staged    //同上命令
    2.7 提交更新
    好习惯:每次准备提交前,先用git status,是不是都已暂存起来了,然后再运行提交
        $ git commit   //启动文本编辑器以便输入本次提交的说明。
        $ git commit -m "。。。。"   //直接加入记录的文本
    2.8 跳过使用暂存区域,自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤
        $ git commit -a

    2.9 移除文件.

       $git rm   //连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了

    如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

    把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中仅是从跟踪清单中删除               $ git rm --cached <filenameopath>

    后面可以列出文件或者目录的名字,也可以使用 glob 模式。比方说:
        $ git rm log/*.log              //此命令删除所有log/ 目录下扩展名为 .log 的文件。
    2.10 移动和重命名文件
        $ git mv file_from  <filenameopath>
    2.11 查看提交历史
        $ git log    //会按提交时间列出所有的更新,最近的更新排在最上面
        $ git log --since=2.weeks
        -p 选项展开显示每次提交的内容差异
        -(n) 仅显示最近的 n 条提交
        --stat 仅显示简要的增改行数统计
        --since, --after 仅显示指定时间之后的提交
        --until, --before 仅显示指定时间之前的提交
        --author 选项显示指定作者的提交
        --grep 选项搜索提交说明中的关键字
        --pretty  可以指定使用完全不同于默认格式的方式展示提交历史比如用oneline 将每个提交放在一行显示。format,可以定制要显示的记录格式;另外还有 short,full 和fuller
        $ git log --pretty=oneline
        $ git log --pretty=format:"%h - %an, %ar : %s"
    2.12
        $ git commit --amend   //修改最后一次提交,重新编辑提交记录
        $ git reset HEAD  <filenameopath>  //取消已经暂存的文件
        $ git checkout -- <filenameopath> //取消对文件的修改
    2.13
        $ git remote    //查看当前的远程库
    origin----默认使用这个名字来标识你所克隆的原始仓库。-v 选项(--verbose)显示对应的克隆地址
    2.14 添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用:
        $ git remote add [shortname] [url]
        $ git remote add pb git://github.com/paulboone/ticgit.git                   //现在可以用字串 pb 指代对应的仓库地址了
        $ git fetch [remote-name]   //从远程仓库抓取数据
    有一点很重要,需要记住,fetch命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。
    2.15 推送数据到远程仓库,要把本地的 master 分支推送到origin 服务器上(再次说明下,克隆操作会自动使用默认的 master 和 origin 名字),可以运行下面的命令:
        $ git push origin master
    2.15 查看远程仓库信息
        $ git remote show [remote-name] 查看某个远程仓库的详细信息
        $ git remote rename pb paul           //远程仓库的重命名
        $ git remote rm paul   //移除对应的远端仓库
    2.16 创建一个含附注类型的标签非常简单,用 -a (annotated有注释的)指定标签名字,-m
        $ git tag -a v1.4 -m 'my version 1.4' 
        $ git tag   //列显已有的标签

        $ git tag v0.1  //新建标签

    (来源于http://git-scm.com/book/zh,很不错的)

  • 相关阅读:
    java中的死锁现象
    Maven 创建动态web 3.0项目
    查询数据库主外键关系
    函数指针的应用学习Demo
    WCF宿主Window Service Demo
    一段小程序理解getchar和putchar
    Flash在线签名小程序,可回放,动态导出gif图片
    uninstall gitlab
    使用SCP在命令行传输文件
    Linux下网卡eth编号配置文件路径
  • 原文地址:https://www.cnblogs.com/zcwsmile/p/4027805.html
Copyright © 2020-2023  润新知