Git简用

1.Git基础

1.1 给你一个选择Git而不是SVN的理由

  • Git是分布式的,SVN不是。(最核心的区别)
  • Git按照元数据方式存储内容,SVN按文件存储:所有的资源控制系统都是将文件的元信息隐藏在一个类似SVN,CVS的文件里。
  • Git和SVN的分支不同:分支在SVN中仅代表版本库中的另外一个目录。
  • Git没有全局版本号,而SVN有。
  • Git的内容完整性优于SVN:Git的内容存储使用的是SHA-1哈希算法,确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

1.2 Git安装

下载地址:https://gitforwindows.org/

1.3 Git工作流程

  • 克隆 Git 资源作为工作目录。
  • 在克隆的资源上添加或修改文件。
  • 如果其他人修改了,你可以更新资源。
  • 在提交前查看修改。
  • 提交修改。
  • 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
    在这里插入图片描述

2.基本操作

2.1 获取Git仓库

(1)创建Git仓库——git init
  在这里插入图片描述
  在Demo项目中创建Git仓库,红框标出的位置表明在F:/Demo/.git/目录初始化空Git仓库完毕。

(2)克隆现有仓库——git clone [url]
 
  拷贝一个Git仓库到本地,达到可以查看该项目或者对其进行修改的目的。
  在这里插入图片描述
  克隆之后用”ls”查看,会发现Demo项目中多了一个“BXTwebsite”的文件。
 
  git clone [url] [newName]改变克隆项目名称(重命名)            
  在1里插入图片描述
  克隆“BXTwebsite”项目,并重命名为“clover”。

2.2 记录每次更新到仓库

(1)git add  跟踪文件(将文件添加至缓存)

(2)git status   查看文件当前的状态
    git status -s   状态简览

(3)git diff  查看文件更新修改信息
         git diff 命令可以回答两个问题:一是当前做的哪些更新还没有暂存;二是哪些更新已经暂存起来等待下次提交。

  •   git diff  查看未暂存文件的修改更新
  •   git diff --cached git diff --staged 查看已暂存文件的修改更新
  •   git diff HEAD  查看已暂存文件与未暂存文件的所有修改
  •   git diff – stat  显示摘要而非整个diff

    追踪文件、查看文件状态、获得简短的文件状态示例:

  • 添加README和test.py两个文件,查看文件当前状态
    在这里插入图片描述
    图中“1”代表我们新建两个名为”README”和”test.py”的文件,使用git status -s命令查看文件当前状态,“??”说明文件当前尚未添加到缓存中。
    执行git add README test.py命令后,再查询文件当前状态(git status),两个文件已被添加(“A”表示文件已被添加)。
    在这里插入图片描述
    在test.py中添加“123456”并保存退出后,再执行git status -s,出现“AM test.py”,“AM” 状态的意思是该文件在我们将它添加到缓存后有所改动。改动后再执行git add命令将它添加到缓存。

    git diff 和 git diff –-cached的示例:

  • 在Demo目录中创建README和hello.php文件,vim打开README文件添加“测试”内容后添加至缓存,查看状态;
  • vim打开hello.php文件添加“<?php echo ‘www.baidu.com’; ?>”内容后尚未添加至缓存,查看状态;
  • git diff查看尚未缓存的改动,结果如图中1所示;
  • git add将hello.php添加至缓存后,git diff –-cached查看已缓存的改动,结果如图中2所示。
    在这里插入图片描述
    在这里插入图片描述

(4)git commit    将缓存区内容添加到仓库中(git add 将快照内容写入缓存区)
          每一次提交git都会记录名字和邮件地址,所以需要提前配置用户名和邮箱地址(可以在安装完git后就进行配置,只需配置一次)。提交前先用git status命令检查文件内容是否都已暂存。

    操作命令:

  •  配置用户名和邮箱
     git config --global user.name“牧心”
     git config --global user.email 280942919@qq.com”

  •  git config –list 检查配置信息

  •  git status -s (若有未缓存的要用git add追踪文件)

  •  git commit提交
    输入提交命令后,会打开一个编辑器(vim、emacs、notepad++),可以填写提交说明,比如你修改了什么…
    在这里插入图片描述
    综述:如果git安装完就进行配置,此处无需再配置;若觉得上述提交步骤过于繁琐,可直接使用git commit -a,这样Git会自动将所有已跟踪过的文件暂存起来一并提交,从而跳过git add步骤。

(5)git rm <file>     移除文件
          要从Git中移除文件,必须从已跟踪文件清单中移除(从暂存区移除),使用git rm命令可以从工作目录中删除指定文件,使文件不再出现在跟踪文件清单中。

  •   git rm --cached  只在Git仓库中删除文件(从暂存区移除),仍保留在工作目录中
  •   git rm log/\*.log  删除log/目录下扩展名为.log的所有文件

(6)git mv [原文件名][新文件名]     移动文件(重命名)

        示例:将“123.txt”文件重命名为“test”
  在这里插入图片描述
  git mv 123.txt test等同于执行mv 123.txt test和git rm 123.txt及git add test三条命令。

2.3 查看提交历史

(1)git log     查看提交历史
         git log会按照提交时间列出所有更新,最近的更新在最上面,会列出每个提交的SHA-1校验和、作者名字、电子邮件地址、提交时间及提交说明。
  在这里插入图片描述

(2)git log的常用选项

选项说明
-p按补丁格式显示每个更新之间的差异
- -stat显示每次更新的文件修改统计信息
- -shortstat只显示–stat中最后的行数修改添加移除统计
- -name-only仅在提交信息后显示已修改的文件清单
- -name-status显示新增、修改、删除的文件清单
- -abbrev-commit仅显示SHA-1的前几个字符,而非所有的40个字符
- -relative-date使用较短的相对时间显示
- -graph显示图形表示的分支合并历史
- -pretty使用其他格式显示历史提交信息。可用选项包括online、short、full、fuller和format(后面加指定格式)

(3)限制git log输出的选项

选项说明
-(n)仅显示最近的n条提交
- -since,- -after仅显示指定时间之后的提交
- -until,- -before仅显示指定时间之前的提交
- -author仅显示指定作者相关的提交
- -committer仅显示指定提交者相关的提交
- -grep仅显示含指定关键字的提交
- -S仅显示添加或移除了某个关键字的提交

          例如:查看2018.9.24到2018.9.26之间,牧心提交的文件
git log –author=“牧心”–since=“2018.9.24”–before =“2018.9.26”

3.Git分支

3.1 分支管理

  • git branch(branchname) 新建分支
  • git branch -d(branchname) 删除分支
  • git checkout(branchname)切换分支
  • git merge(branchname)合并分支

3.2 分支管理工具

  • git branch 获得包含当前所有分支的一个列表
  • git branch -V 查看每个分支的最后一次提交
  • git branch --merged 查看有哪些分支已合并到当前分支
    git branch –no-merged 查看未合并到当前分支的分支

4.Git远程仓库(以github作为远程仓库为例)

4.1 添加远程库

(1)添加远程仓库 git remote add [名字][url]
(2)生成SSH Key ssh-keygen -t rsa -C [github注册邮箱],默认一路回车,成功后会在~/下生成.ssh文件夹,打开id_rsa_pub,复制里面的key。
(3)打开github,进行如下操作:
  在这里插入图片描述
  在这里插入图片描述

          点击New SSH Key按钮,title随意填,Key中粘贴上id_rsa_pub里面的key。
添加成功后如下图所示:
  在这里插入图片描述
          可以使用命令ssh -T git@github.com 验证是否成功,出现如下界面(出现红框标出内容即成功)表示成功
  在这里插入图片描述
(4)新建仓库并推送
  在这里插入图片描述
  在这里插入图片描述

          创建成功后显示下图信息:
  在这里插入图片描述
          该信息说明我们可以把本地仓库内容推送至github仓库,也可以从这个仓库中克隆出新的仓库。根据github的提示,在本地仓库运行命令:

    $ mkdir gitTest
    $ cd gitTest
    $ echo”#测试”>>README.md
    $ git init
    $ git add README.md
    $ git commit -m”添加 README文件”
    $ git remote add origin git@github.com:280942919/gitTest.git
    $ git push -u origin master

        然后返回github创建的仓库,可以看到文件已上传至github:
  在这里插入图片描述

4.2 查看当前的远程库

  • git remote 查看当前配置有哪些远程库
  • git remote -V 看到每个别名的实际链接地址

4.3 提取远程仓库

  • git fetch 从远程仓库下载新的分支与数据
  • git merge 从远程仓库提取数据并尝试合并到当前分支

4.4 推送至远程仓库

  • git push [alias] [branch] 将[branch]分支推送成为[alias]远程仓库上的[branch]分支

4.5 删除远程仓库

  • git remote rm[别名]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值