美文网首页
Git命令和基础知识

Git命令和基础知识

作者: 冲云简 | 来源:发表于2019-11-25 10:06 被阅读0次

    1、Git仓库创建

    本地创建

    $ git init ///创建初始化仓库。

    ///初始化提交

    $ git add *.java 提交问题

    $ git add LICENSE

    $ git commit -m 'initial project version'

    或者远处clone

    $ git clone <URL>(仓库地址)或 git clone<URL>(仓库地址)<name>(文件名)

    2、记录更新仓库

    文件存在四种状态,untracked(未跟踪), unmodified(未更改),modified(更改), staged(已暂存)。

    $ git status ///查看文件状态

    $ git status -s 或 git status —short ///查看状态更简洁。

    忽略文件(不需要git管理的文件)

    $ cat .gitignore

    *.[oa]

    *~

    第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的。 第二行告诉 Git 忽略所有以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。 此外,你可能还需要忽略 log,tmp 或者 pid 目录,以及自动生成的文档等等。 要养成一开始就设置好 .gitignore 文件的习惯,以免将来误提交这类无用的文件。

    文件 .gitignore 的格式规范如下:

    • 所有空行或者以 # 开头的行都会被 Git 忽略。
    • 可以使用标准的 glob 模式匹配。
    • 匹配模式可以以(/)开头防止递归。
    • 匹配模式可以以(/)结尾指定目录。
    • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

    查看已暂存和未暂存的修改

    $ git diff /// 比较的是工作目录中当前文件和暂存区域快照之间的差异

    $ git diff -cache /// 查看已暂存的将要添加到下次提交里的内容

    提交更新

    $ git commit ///每次准备提交前,先用 git status 看下,是不是都已暂存起来了

    $ git commit -m “commit message” ///可以添加提交记录

    $ git commit -a ///将所有已跟踪的文件暂存起来,已暂存后提交,跳过了git add步骤。

    移除文件

    $ git rm <name> ///从暂存区域移除文件,并从工作目录删除文件, 下一次提交时,该文件不再纳入版本管理。如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f,即: git rm -f <name>

    $ git rm —cache <name> ///只是移除git控制,但工作目录不删除。

    $ git rm log/*.log /// git rm 命令后面可以列出文件或者目录的名字, 此命令删除 log/ 目录下扩展名为 .log 的所有文件

    $ git rm *~ ///该命令为删除以 ~ 结尾的所有文件。

    移动文件

    $ git mv <name1> <name2> ///重命名文件

    3、查看提交历史

    git log ///查看提交历史记录

    git log -p -2 /// -p,用来显示每次提交的内容差异。 你也可以加上 -2 来仅显示最近两次提交

    git log —stat /// 查看每次提交的简略的统计信息

    git log —pretty ///简洁的查看提交历史记录

    git log —pretty=format:"%h - %an, %ar : %s" ///显示的记录格式

    ///下面是各命令代表的含义
    -p 按补丁格式显示每个更新之间的差异。
    --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(后跟指定格式)。
    -(n) 仅显示最近的 n 条提交
    --since, --after 仅显示指定时间之后的提交。
    --until, --before 仅显示指定时间之前的提交。
    --author 仅显示指定作者相关的提交。
    --committer 仅显示指定提交者相关的提交。
    --grep 仅显示含指定关键字的提交
    -S 仅显示添加或移除了某个关键字的提交

    4、撤销操作

    $ git commit —amend ///将暂存区的文件重新提交

    如果你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:

    $ git commit -m 'initial commit'

    $ git add forgotten_file

    $ git commit --amend

    最终你只会有一个提交——第二次提交将代替第一次提交的结果。

    $ git reset HEAD <name> /// 取消已暂存的文件。

    $ git checkout — <name> ///撤销之前文件的修改,返回到上一次提交状态,慎用,撤销后不可再恢复

    5、远程仓库的使用

    查看远程仓库

    $ git remote /// 显示仓库服务器的名字

    $ git remote -v ///显示仓库服务器的名字 和URL

    添加远程仓库

    $git remote add <shortname> <URL> /// 添加远程仓库,指定仓库服务器名

    从远程仓库中抓取和拉取

    $ git fetch [remote-name] ///从远程仓库中获取你还没有的数据,执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。git fetch origin 会抓取clone(或上一次抓取)后新推送的所有工作, 必须注意 git fetch 命令会将数据拉取到你的本地仓库——它并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作。

    $ git pull [remote-name] ///从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。

    $ git push [orgiin] [master] ///master 分支推送到 origin 服务器, 必须先拉取,合并,再push,以免冲突。

    查看某个远程仓库

    $ git remote show [remote-name] /// 查看远程仓库的信息。

    远程仓库的移除和重命名

    $ git remote rename [name1] [name2] /// 将name1 重命名为name2

    $ git remote rm name /// 移除name1

    6Git标签

    $ git tag ///显示标签信息,如:v0.1, v1.3

    $ git tag -l ‘v1.8.5’ /// 查找包含v1.8.5的的标签

    $ git tag -a v1.4 -m “my version 1.4” /// 创建一个带注释的v1.4标签

    $ git show v1.4 /// 查看标签信息和对应的提交信息

    $ git tag v1.4-lw ///提交轻量标签

    $ git log —pretty=online /// 查看提交历史记录。

    $ git tag -a v1.2 [校验和] /// 给过去的提交创建标签,末尾需指定校验和,或者部分校验和如:9fceb02

    $ git push origin v1.5 /// 共享标签,创建标签,推送到共享服务器上

    $ git push orgin —tags /// 一次性推送多个标签到远程服务器上。

    $ git tag -d v1.4-lw /// 删除本地标签。

    $ git push origin :refs/tags/v1.4-lw ///将删除的标签操作,更新到你的远程仓库。

    $ git checkout 2.0.0 ///查看标签所指向的文件版本,会使你的仓库处于detacthed HEAD状态。

    $ git checkout -b verson2 v2.0.0 ///创建一个新分支

    git****别名

    $ git config —global alias.co checkout /// 通过git config给你的命令设置别名。

    Git****分支 —— https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell

    参考链接https://git-scm.com/book/zh/v2

    相关文章

      网友评论

          本文标题:Git命令和基础知识

          本文链接:https://www.haomeiwen.com/subject/mxddwctx.html