Xungerrrr's Blog

Git日常使用总结

Word count: 813Reading time: 3 min
2018/09/16 Share

取得项目的 Git 仓库

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

    1
    $ git init
  • 从现有仓库克隆

    1
    $ git clone <url>

    也可以自定义项目目录名称:

    1
    $ git clone <url> <name>

将更新记录到仓库

  • 检查当前文件状态

    1
    $ git status

    查看尚未暂存的文件更新了哪些部分:

    1
    $ git diff

    加上-cached选项,查看已经暂存起来的文件和上次提交时的快照之间的差异:

    1
    $ git diff --cached
  • 跟踪新文件和暂存已修改文件

    1
    $ git add <file>
  • 忽略某些文件

    创建.gitignore文件。.gitignore文件的例子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # 此为注释 – 将被 Git 忽略
    # 忽略所有 .a 结尾的文件
    *.a
    # 但 lib.a 除外
    !lib.a
    # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
    /TODO
    # 忽略 build/ 目录下的所有文件
    build/
    # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
    doc/*.txt
    # 忽略 doc/ 目录下所有扩展名为 txt 的文件
    doc/**/*.txt
  • 提交更新

    1
    $ git commit -m "<message>"

    加上-a选项,跳过使用暂存区域:

    1
    $ git commit -a -m "<message>"
  • 移除文件

    1
    $ git rm <file>

    加上–cached选项,移除跟踪但不删除文件:

    1
    $ git rm --cached <file>
  • 移动文件(重命名)

    1
    $ git mv <file_from> <file_to>

查看提交历史

1
$ git log

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-p                # 按补丁格式显示每个更新之间的差异。
--word-diff # 按 word diff 格式显示差异。
--stat # 显示每次更新的文件修改统计信息。
--shortstat # 只显示 --stat 中最后的行数修改添加移除统计。
--name-only # 仅在提交信息后显示已修改的文件清单。
--name-status # 显示新增、修改、删除的文件清单。
--abbrev-commit # 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
--relative-date # 使用较短的相对时间显示(比如,“2 weeks ago”)。
--graph # 显示 ASCII 图形表示的分支合并历史。
--pretty # 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。
--oneline # --pretty=oneline --abbrev-commit 的简化用法。
-(n) # 仅显示最近的 n 条提交
--since, --after # 仅显示指定时间之后的提交。
--until, --before # 仅显示指定时间之前的提交。
--author # 仅显示指定作者相关的提交。
--committer # 仅显示指定提交者相关的提交。

撤销操作

  • 重新提交

    1
    $ git commit --amend
  • 取消已经暂存的文件

    1
    $ git reset HEAD <file>
  • 取消对文件的修改

    1
    $ git checkout -- <file>

远程仓库

  • 查看当前的远程仓库

    1
    $ git remote

    加上-v选项,显示对应的克隆地址:

    1
    $ git remote -v
  • 添加远程仓库

    1
    $ git remote add <shortname> <url>
  • 从远程仓库抓取数据

    不合并分支

    1
    $ git fetch <remote-name>

    合并分支

    1
    $ git pull <remote-name>
  • 推送数据到远程仓库

    1
    $ git push <remote-name> <branch-name>
  • 查看远程仓库的信息

    1
    $ git remote show <remote-name>
  • 远程仓库的删除和重命名

    重命名

    1
    $ git remote rename <old-name> <new-name>

    删除

    1
    $ git remote rm <remote-name>
CATALOG
  1. 1. 取得项目的 Git 仓库
  2. 2. 将更新记录到仓库
  3. 3. 查看提交历史
  4. 4. 撤销操作
  5. 5. 远程仓库