zoukankan      html  css  js  c++  java
  • Git学习

    最近看到一个网址http://iissnan.com/progit/html/zh/ch1_0.html。准备开始系统地学习一下Git的使用。在此记录一下。

    Git基础

    在工作目录中初始化新仓库

    $ git init
    

    当前目录下会出现.git文件夹

    $ git add
    

    对文件进行跟踪。把目标文件快照放入暂存区域,也就是 add file into staged area,同时未曾跟踪过的文件标记为需要跟踪。

    $ git add *.c
    $ git add README
    $ git commit -m 'initial project version'
    

    从现有仓库中克隆

    克隆仓库的命令格式为 git clone [url]

    检查当前文件状态

    $ git status
    

    跟踪新文件

    $ git add filename
    

    忽略文件

    首先创建一个.gitignore文件

    $ cat .gitignore
    # 此为注释 – 将被 Git 忽略
    # 忽略所有 .a 结尾的文件
    *.a
    # 但 lib.a 除外
    !lib.a
    # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
    /TODO
    # 忽略 build/ 目录下的所有文件
    build/
    # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
    doc/*.txt
    # ignore all .txt files in the doc/ directory
    doc/**/*.txt
    

    查看已暂存和未暂存的文件

    $ git diff
    

    此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容。

    $ git diff --cached
    

    查看已经暂存起来的文件和上次提交时的快照之间的差异。

    提交更新

    $ git commit -m 'some message'
    

    跳过使用暂存区域

    $ git commit -a -m 'added new benchmarks'
    

    Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤。

    移除文件

    $ git rm [filename]
    

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

    想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。换句话说,仅是从跟踪清单中删除。

    $ git rm --cached [filename]
    

    移动文件

    $ git mv file_from file_to
    

    查看提交历史

    $ git log
    

    可选参数:
    -p: 展开显示每次提交的内容差异
    -2: 仅显示最近的两次更新

    撤销操作

    修改最后一次提交

    $ git commit --amend
    

    取消已暂存的文件

    git reset HEAD <file>
    

    取消对文件修改

    $ git checkout -- [filename]
    

    远程仓库的使用

    查看远程仓库

    $ git remote
    

    添加远程仓库

    $ git remote add [shortname]  [url]
    

    从远程仓库抓取数据

    $ git fetch [remote-name]
    

    推送数据到远程仓库

    $ git push [remote-name] [branch-name]
    

    查看远程仓库名称

    $ git remote show [remote-name]
    

    远程仓库的删除和重命名

    $ git remote rename [old name] [new name]
    

    Git 分支

    创建分支

    $ git branch [name]
    

    HEAD是一个指向你正在工作中的本地分支的指针,创建了一个分支后并不会自动切换到这个分支中去。

    切换分支

    $ git checkout [name]
    

    可以合并成一条命令,创建分支并切换

    $ git checkout  -b [name]
    

    分支合并

    $ git merge [branchname]
    

    推送本地分支

    $ git push (远程仓库名) (分支名)
    

    跟踪远程分支

    $ git checkout -b [分支名] [远程名]/[分支名]
    

    删除远程分支 即省略本地分支的名字

    $ git push [远程名] :[分支名]


    Github: https://github.com/Vxee/articles/issues/13
  • 相关阅读:
    数据库主键生成策略
    弹出窗返回数据实体对象或对象集
    我的家乡话,模糊和清晰的记忆......
    曾经年少
    获取父页面URL的参数对应值及左对齐字符串
    .Net编程规范
    DBdifference
    GridView翻页时保持CheckBox选择状态
    .CS中的javascript
    (转)程序员职业规划
  • 原文地址:https://www.cnblogs.com/fjl-vxee/p/9427650.html
Copyright © 2011-2022 走看看