美文网首页
Git学习过程(二)

Git学习过程(二)

作者: Hugh1029 | 来源:发表于2018-07-14 21:13 被阅读0次

本节内容包括了Git的基本命令操作,为最常用的操作,简单记录。
一、获取Git仓库
建立Git的项目无外乎两种,一种是从远端clone下来,一种是将已有项目导入。
1.在现有目录中初始化Git仓库:
git init: 初始化仓库,在项目目录中执行该命令,会生成一个.git子目录(windwos下可能被隐藏了),该目录就包含了git仓库的所有必须文件。

2.git add: 对已有的文件进行跟踪;只有对文件跟踪后才能进行提交;作用:跟踪新文件和暂存文件(已经commit的文件修改后执行该命令进行暂存)
eg: git add *.c

4.git commit: 提交变更。对已经git add(跟踪)的文件进行提交,并且需要提交注释。
直接输入git commit会跳出编辑器来输入信息,简单的方式是使用git commit -m "内容"
eg: git commit -m "这是我第一次提交内容"
git commit -v:会把提交的差异显示在编辑器
跳过暂存区进行提交:我们每次都是git add之后再能进行git commit,这似乎有一点点繁琐,我们可以简化这个过程。
git commit -a -m "提交内容" :只适用已经提交的内容的修改

5.git clone: 克隆仓库。相当于svn的checkout命令,将远端仓库的的文件全部拉取下来。命令行是没有checkout这个命令的,但是在使用idea的时候,第一次克隆下来的时候也是用点击checkout。
eg: git clone url 本地名
其中url可以是https或者ssh,本地名就是将远程仓库克隆下来后在本地的名字

6.记录变更说明:
工作目录下所有的文件都处于两种状态:已跟踪(tracked)和未跟踪(untracked)(我理解的是git add和git commit的文件都是已经跟踪了的,而最基础的git add都没有执行的文件是未跟踪的)。已跟踪指上一次快照中包含的文件。已跟踪又分为三种状态:未修改、已修改和已暂存。
当刚clone之后,所有的文件都是已跟踪未修改的。

7.git status:查看当前文件的状态,也可以查看到当前属于什么分支。但是git status的信息比较全面也比较冗长,当需要简洁的查看时候。
使用git status -s(git status -short的简写)
使用git status -s在文件的最见面会有个标记,标记的说明如下:
??:未被跟踪的文件
M:已经修改的文件(modified)没有暂存
MM:已修改并被添加到暂存区,之后又被修改过(暂存区和工作区都有)
A:已经暂存

8.忽略文件
创建.gitignore文件,不想提交的均可放入到其中。规则如下:
空行或者#开头的会被忽略
支持标准的glob模式
以斜杠(/)开头的可以禁止递归匹配
以斜杠(/)结尾的标识目录
以感叹号(!)开头的表取反
glob是适用shell的简化版正则(linux学习很重要而且成为较为厉害的程序员必学),比如星号()匹配零个或多个字符,问号(?)匹配一个字符,[abc]配置其中的任意一个,[0-9]范围内的任何一个,*表示嵌套目录
eg:
*.a : .a类型都被忽略
build/: build目录下都被忽略
更多的参考可以查看:https://github.com/github/gitignore

9.git diff: 查看已暂存和未暂存的变更(查看变更的详情,输出的是补丁)
查看尚未添加到暂存区的变更(没有git add),直接输入git diff
查看哪些已暂存的内容会下一次提交: git diff --staged
再强调,git diff只是显示还没有进入暂存区的变更,所以你添加到暂存区之后输入git diff是没有任何提示的
已经暂存的除了git diff --staged 之外,还可以使用git diff --cached来查看
还有其他的git diff命令,同时有很多git diff的工具,可以通过git difftool来使用.git difftool --tool-help

10.移除文件
git rm 文件名
如果要从git里面移除文件,需要从跟踪列表移除(从暂存区移除),再提交
已经暂存了,那需要使用命令:
git rm -f 文件
将文件留在硬盘上,只是不想跟踪
git rm --cached 文件

11.移动文件
git mv file_form file_to

12.git log: 查看提交历史
执行git log 可以查看到提交历史,按照时间列出
最有用的选项 -p:会显示出每次提交所引入的差异
git log -p -2: 查看最近两次提交
git log --stat :查看每个提交的简要统计信息

--pretty命令选项,后面可加=online/short/full/fuller
或者=format: "%h -%an,%ar:%s"
format参数如下:
%H:提交对象的散列值
%h:提交对象的简短散列值
%T:树对象的散列值 %t:简短
%P:父对象散列值; %p:简短
%an:作者名字;
%ae:作者邮箱
%ad:创作日期
%ar:相对于当前日期的创作日期
%cn:提交者名字
%ce:提交者的邮箱
%cd:提交日期
%s:提交信息的主题

online与format可以配合 --graph来使用,图形化。

gti log常用的项:
-p: 按不听显示每次提交引入的更改
--stat: 显示每个提交中被更改的文件的统计信息
--shortstat:
--name-only: 每个提交信息后显示被更改的文件列表
--name-status:上个命令基础上显示“已更该/新增/删除”统计信息
--abbrev-commit:只显示SHA-1的前几个字符
--relative-date:显示相对日期
--graph:图形化
--pretty

13.限制提交历史的输出范围
git log -n:最近多少次
--since/--after:某天之后
--until/--before:指定日期之前
--author:作者
--committer:提交者
--grep: 关键字
-s:只输出包含添加/输出指定字符串的提交。
要查看author和grep,要添加--all-match

14.撤销已提交:
git commit --amend

15.撤销已暂存:
git reset HEAD 文件名:移出暂存区

16:撤销对文件的修改(危险的命令)
git checkout --[filename]
会将之前的修改撤销,恢复的之前的文件

17.远程仓库的使用
1).git remote:显示远程仓库简称,默认源仓库叫做:origin
2).git remote -v :显示每个仓库的地址
3).添加远程仓库: git remote 短名 地址
4).git fetch与git pull
git fetch会将远程仓库新增的数据拉取到本地仓库,但是不会合并。需要自己手动合并
git pull:会将远程仓库拉取下来,并尝试自动合并
5)gti push: 数据推送到远程仓库:
在推送下,先gti pull,不然会被拒绝推送.
git push 仓库短名 分支名
eg: git push origin master
第一次应该使用:git push -u origin master:设置一个默认的仓库
6).查看仓库信息
git remote show 仓库名

18.重命名与删除远程仓库
重命名:git remote rename 原名 新名
删除:git remote rm 仓库名

19.标记
git tag:列举标记 git tag -l
创建注释标签: git tag -a v1.2 -m "我的标签"
显示:git show v1.2
创建轻量标签:git tag v1.4 -lw
补加标签:git tag -a v1.2 ee

共享标签:git push origin [tagname]
一次提交多个: git push origin --tags

检出标签:
git checkout -b [分支名] [标签名]

20.git别名
git config alias.别名 '原名'

相关文章

  • Git学习过程(二)

    本节内容包括了Git的基本命令操作,为最常用的操作,简单记录。一、获取Git仓库建立Git的项目无外乎两种,一种是...

  • Git学习过程(一)

    一、入门1.Git历史:我总是喜欢知道一件事的历史,这样才更有意思。Git也是源自Linux,是在Linux原本的...

  • Git学习过程(三)

    本次记录git使用过程中分支的简单操作。简单介绍:默认的分支是master分支,这并不是一个什么特殊的分支,其最大...

  • git学习的过程

    git的客户端似乎对每个系统做了一个适配操作,如win下pwd和cd /c/Users/Administrator...

  • git资源学习

    git资源学习 Git详解之一 Git起步 Git详解之二 Git基础 Git详解之三 Git分支 Git详解之四...

  • [git] git 学习

    [git] git 学习 起因 被老板喷了,让我回炉重新学一下git 基础使用 其实平常在使用git的过程中都只是...

  • 对Git用户名与Github账户关系的理解

    入门学习Git的过程中,产生了这样的困惑: 在电脑上,如果要用Git,我们需要通过命令git config --g...

  • 对Git用户名与Github账户关系的理解

    入门学习Git的过程中,产生了这样的困惑: 在电脑上,如果要用Git,我们需要通过命令git config --g...

  • github使用2018-01-04

    一、学习网站 github官网使用说明github常用命令 二、笔记 1)一次创建过程 git statuslsc...

  • 安装Git

    推荐学习Git教程-廖雪峰 一. git --version 查看系统是否已经安装git 二. yum insta...

网友评论

      本文标题:Git学习过程(二)

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