Git笔记

Git简介

  • Git是一个开源的分布式版本控制系统,是 Linus Torvalds 为了帮助管理 Linux内核开发而开发的一个开放源码的版本控制软件。
  • Github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

Git的安装

  • 官网 https://git-scm.com/
  • debain平台:sudo apt-get install git就可以直接完成Git的安装
  • windows平台从官网下载git安装包安装

Git的本地使用

git init初始化命令

  • 初始化当前目录为git目录
  • git会自动创建一个master分支
  • 初始化后会产生一个.git文件夹保存配置文件

git add [文件名]

  • 将文件添加到git暂存区(stage)
  • git add . 表示添加当前目录
  • git add 命令可以同时提交多个文件

git commit [文件名]

  • 将文件从暂存区提交到git仓库(比如master)
  • git commit -m “this is a commit”
    提交时需要-m命令附加此次提交的注释
  • 第一次执行此命令时需要设置email及name,这些信息会保存到日志中
  • 此命令仅仅添加经过git add到暂存区中的文件,如果暂存区中没有文件则无法提交
    Git结构图

git config

  • 当你安装Git后首先要做的事情是设置你的用户名和e-mail地址,每次Git提交都会使用该信息。
$ git config --global user.name "用户名"  
$ git config --global user.email "用户邮箱账号" 
  • 查看配置
$ git config --list

git status

  • 查看目前暂存区和git仓库的状态,是否已经提交暂存区而没有commit等

git checkout

  • 将暂存区或者指定commit内容覆盖到工作区。
  • 将提交的文件反向回滚到上一版本到本地目录(工作区),如果已经add而没有commit则会从暂存区回滚,如果已经commit则会从git仓库回滚

git log

  • 显示历史commit的记录,包括commit文件的MD5值,作者信息、日期、-m参数后的注释 排列顺序从最
  • 新的提交到最老的提交 git
  • log --pretty=oneline 以单行的形式显示日志

版本号

  • HEAD表示仓库中当前的版本号,HEAD^表示上一个版本号

git reset

  • git reset --hard HEAD^ 表示将本目录(工作区)回滚到仓库中HEAD^的版本号
  • git reset --hard [版本MD5值] 表示将本目录(工作区)回滚到指定MD5值的版本号

git reflog

  • 查看所有的回滚记录,可以显示所有回滚文件的MD5值,包括已经回滚删除的

git rm [文件名]

  • 删除暂存区中的文件

git diff

  • 显示工作区和暂存区之间的差异

在GitHub创建仓库

  • 创建GitHub账号
  • 登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个远程仓库

设置SSH秘钥

  • 创建SSH秘钥:由于使用SSH作为本地和远程仓库的通信协议,需要在本地创建SSH秘钥
$ ssh-keygen -t rsa -C "邮箱地址"

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥

  • 登陆GitHub,打开“Account settings”,“SSH Keys”页面,然后,点“Add SSH
    Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。
    GitHub允许你添加多个Key,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

添加远程仓库

$ git remote add origin [远程仓库的地址,如git@github.com:abc/abc.git]

远程仓库的使用

  • 完成以上步骤就已经将远程仓库和本地仓库进行了绑定

git push

  • 将本地仓库推送到远程仓库
$ git push -u origin master
  • 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。
$ git push origin master 
  • 正常可使用此命令推送

git clone

$ git clone [版本库的网址] [本地目录名]
$ git clone git@github.com:abc/abc.git
  • git支持多种协议,包括SSH或者是HTTPS协议
  • 该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名,可以将目录名作为git clone命令的第二个参数

分支管理

  • 分支管理用于多人协同开发
  • A,B,C三人可以各自从远程仓库建立自己的分支,并各自在自己的分支上工作,互不打扰
  • 当三人完成自己的工作后可以将各自的分支向master分支合并

创建与合并分支

  • 在学习版本回退部分时,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。
  • 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点
    step1
  • 当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上
    在这里插入图片描述
  • 假如我们在dev上的工作完成了,就可以把dev合并到master上,直接把master指向dev的当前提交,就完成了合并
    在这里插入图片描述

创建分支

$ git checkout -b dev
  • 以上命令表示创建dev分支并切换到dev分支
$ git branch
 - dev
  master
  • 用git branch命令查看当前分支
  • git branch命令会列出所有分支,当前分支前面会标一个*号
  • 后面所做的操作都是在dev分支上进行的
$ git checkout master
  • 使用checkout命令切换到master分支上

在这里插入图片描述

$ git merge dev
  • 将dev分支的工作成果向master分支上合并
  • git merge命令用于合并指定分支到当前分支
$ git branch -d dev
  • 删除dev分支
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值