git的使用

一、下载和安装

下载git

二、安装-启动git

Mac 本 打开终端

windows本 开始 => git文件 =>

a. git bash 支持linux命令的 shell

b. git cmd 支持windows命令的shell(垃圾)

c. git gui 可视化界面(难用)

三、git和github

img

  1. git shell 命令行客户端工具

  2. github 全球最大的一个开源社区,版本仓库网站。github官网

  3. gitee 国内一个Git的代码托管和研发协作平台。(都需要注册账号)

    我们先来理解下 Git 工作区、暂存区和版本库概念:

    • 工作区:就是你在电脑里能看到的目录。
    • 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
    • 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

    下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:

    img

    • 图中左侧为工作区,右侧为版本库。在版本库中标记为 "index" 的区域是暂存区(stage/index),标记为 "master" 的是 master 分支所代表的目录树。
    • 图中我们可以看出此时 "HEAD" 实际是指向 master 分支的一个"游标"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。
    • 图中的 objects 标识的区域为 Git 的对象库,实际位于 ".git/objects" 目录下,里面包含了创建的各种对象及内容。
    • 当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。
    • 当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
    • 当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
    • 当执行 git rm --cached 命令时,会直接从暂存区删除文件,工作区则不做出改变。
    • 当执行 git checkout . 或者 git checkout -- 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
    • 当执行 git checkout HEAD . 或者 git checkout HEAD 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

四、git操作

  1. 进入当前目录
$ cd 路径
  1. 当前目录的初始化(设置文件夹选项,显示隐藏文件)
$ git init

出现了一个.git文件,这个文件是当前仓库的配置文件,里面存储着,当前项目,进行版本控制的一切信息。

第二个事情,在本地建立一个虚拟仓库。

  1. 注册账号完成以后,在你的账号下,去建立一个远程仓库
  2. 在本地的git上,设置你的账户和用户名
$ git config --global user.name '你的git名称'
$ git config --global user.email '你github登陆的邮箱地址'
例如:
$ git config --global user.name 'demo'
$ git config --global user.email '309553513@qq.com'
  1. 工作区 上传到 暂存区
$ git add * / git add . / git add 文件名字
$ git commit -m 'first commit'  这一次提交的描述信息
  1. 查看暂存区和工作区提交状态
$ git status
  1. 查看工作区和暂存区,文件的变化
$ git diff
  1. 查看历史版本
$ git log //如果版本乱可以使用 `git log --pretty=online`
  1. 版本回滚
$ git reset --hard HEAD^    回到上一个版本
$ git reset --hard HEAD^^   回到上上一个版本
$ git reset --hard 版本号
  1. 配置一个文件 .gitignore

在这个文件中缩写的路径,都是我们要忽略的文件。

  1. 暂存区提交数据到远程仓库去
$ git remote add origin 仓库地址.git
$ git push -u origin master

push以后,有可能会要求大家输入账户和密码(github的账户和密码)。

  1. 必须先生成ssh密匙,是在你的电脑上生成,配置到github配置项中
$ ssh-keygen -t rsa -C '邮箱@gmail.com'

用户文件夹中查找 => .ssh/id_rsa.pub 复制其中密匙

在github或者gitee的用户配置项中添加ssh密匙

五、如果已经提交成功了

  1. git add *
  2. git commit -m ''
  3. git push

六、创建分支

$ git branch (branchname)
$ git branch  //列出分支

一般情况下,我们在新增内容的时候,不要在主分支上在原程序做任何修改,我们可以先去创建一个分支,

如果在分支开发没有问题以后,再将分支的内容合并到主分支上去。

还可以用于:Bug修复 新开发功能 调试...

七、切换分支

$ git checkout branchname

快捷方式

$ git branch (branchname) -b  //创建分支,切换分支

八、合并分支

$ git merge (branchname)

九、提交到远程仓库去

$ git push --set-upstream origin bbb

十、删除分支

$ git branch -d (branchname)

十一、克隆(第一次拉去程序到本地)

$ git clone 仓库地址.git

十二、更新你当前的项目版本到最新版本

$ git pull

十三、git删除远程仓库的文件或文件夹

删除文件

dir demo // 查询demo文件夹下的所有文件和文件夹
git rm -r --cached deme /a.txt // 删除demo文件夹下的a.txt文件,加入到删除缓存中
git commit -m ‘删除demo文件夹下的a.txt文件’ // 执行删除缓存,提交文字为“删除demo文件夹下的a.txt文件”

删除文件夹

git rm -r --cached demo // 删除demo文件夹,加入到删除缓存中
git commit -m ‘删除demo文件夹’ // 执行删除缓存,提交文字为“删除demo 文件夹”
git push // 推送操作到远程仓库

十四返回到github制定版本

  • 查询历史对应不同版本的ID,用于回退使用
    $ git log --pretty=oneline
  • 利用查询到的历史版本ID,回复到历史版本
    $ git reset --hard fae6966548e3ae76cfa7f38a461c438cf75ba965
  • 把修改退回到远程服务器github
    $ git push -f -u origin master
  • 重新更新就可以了
    git pull
请用今天的努力,让明天没有遗憾。
原文地址:https://www.cnblogs.com/cupid10/p/13390750.html