Git介绍

Git简单介绍

  • 什么是Git

    • Git是一款源代码管理工具(版本控制工具)
  • 什么又是源代码:凡是由我们手写的代码都称之为源代码

  • 源代码有必要管理起吗?

    • 有必要,因为人工的去处理不同的版本,做相应备份会比较麻烦。

    • Git是linux之父当年为了维护linux---linus之前也是手动维护合并把文件发给Linus

  • 集中式和分布式

  • 集中式:Svn

  • 分布式:Git

Git命令使用

  • Git初次使用添加用户名和邮箱

  • 配置用户名:git config --global user.name "你的用户名"

  • 配置邮箱 :git config --global user.email "你的邮箱"

  • 删除错误配置 :git config --global --unset "错误的key删除掉"

  • 查看配置 :git config --list

  • 去任何一家公司现完成上面的步骤

  • 初始化一个空的仓储

  • 初始化空仓储:git init

  • 这个命令会在当前目录中新建一个隐藏的名为.git的文件夹,里面存储的是项目的各个版本。

  • 千万不要更改.git目录里文件。

  • 查看当前目录文件的状态

  • 命令 : git status

    • 查看当前工作目录的状态,是已经放到暂存区,还是提交到仓库了。
  • 或命令: git status -s

    • 查看简要的状态信息
  • 将文件添加到暂存区

  • 命令: git add ./file.txt

    • 将当前目录中的file.txt添加到暂存区
  • 或者: git add .

    • 表示将当前目录所有文件都添加的暂存区.

    • 这是批量添加.

可以对文件执行多次add命令,都会把最新的修改添加到暂存,但是,后页面执行add命令,会把前面执行add命令添加到暂存区的文件覆盖(相同的文件会覆盖)

  • 将文件添加到仓储中

  • 命令 : git commit -m "这次我添加了一个变量"

    • -m 表示需要指定一个字符串,表示本次提交的代码与上一次相比多了哪些功能,或者是做了哪些修改。

    • 每次提交时都需要写上相应的字符串以做出说明

  • 或命令: git commit -m -c

  • -c 表示可以在提交时,不提供说明。

  • 不推荐这么做,不利于后期代码维护

  • 提交时只是提交暂存区的代码,没有添加到暂存区的代码不会提交

  • 查看日志

  • 命令:git log

  • 或命令:git log --oneline

  • 以图形化查看:git log –graph

  • 忽略文件

  • 不要省略/ 除非有必要

  • 需要新建一个名为: .gitignore 的文件

  • 这个文件话.git同级目录.

    • 该文件用来告诉我们的git哪些文件不要被添加一仓储中。

    • 忽略某个目录: /node_modules

    • 忽略某个文件: /css/my.css

    • 忽略某一类文件: /css/*.css

    • 忽略目录下所有文件: .

    • 忽略所有名为node_modules的目录: node_modules

    • ‘#’号表示注释

  • 版本回退

  • 命令:git reset --hard Head

    • 回到最近一次提交的版本的文件状态

    • git指向的是上一次提交

    • 'git reset --hard Head^^ 表示回到最近往前第二次的提交'

    • Head后面的^表示回退到第几次

  • 命令: git reset --hard Head~1

    • 表示回到最近一次提交的前一次提交.

    • Head~2,回退到最近一次提交的前2次提交.

  • 命令: git reset --hard [版本号]

    • 示例: git reset --hard 12dad211

    • 回退到某个具体的版本。

    • 可以配合git reflog命令查看历史操作来进行回退

  • 这里进行版本回退,并不会对文件进行真实的删除

  • 通过git reflog 可以查看到每一次对版本的切换来提交。

  • 创建Git分支,并切换分支

    • 正在做功能呢,才做了一半,但是为了不丢失代码要提交,又不能影响别人工作。
  • 查看有多少分支

    • git branch
  • 命令: git branch dev

    • 创建了一个名为dev的分支
  • 命令: git checkout dev

    • 切换到dev分支
  • 创建并切换到指定分支

    • git checkout -b dev
  • 合并Git分支

  • 画图

  • 命令: git merge dev

    • 表示将当前分支与dev分支合并

    • 在主分支下执行合并命令.

  • 命令: git branch -d dev

    • 表示删除dev分支,当合并分支后,如果不需要再使用dev分支,则可以直接删除。

    • 不要在dev分支执行这个命令,在别的的分支执行.

  • 解决冲突

    • 应该是如何合并冲突。

    • 冲突是不可避免的。

  • 当在新功能完成后合并前,修改并提交了主分支对应的文件,合并时两个分支中的文件有冲突。

  • 手动修改文件,然后提交

Git原理以及常用步骤

  • Git内部结构

  • 为了更好的学习Git,我们们必须了解Git管理我们文件的3种状态,分别是已提交(committed)、已修改(modified)和已暂存(staged)
    ,由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。 Git仓库目录是Git用来保存项目的元数据和对象数据库的地方。 这是Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。 工作目录是对项目的某个版本独立提取出来的内容。 这些从Git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。 暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在Git仓库目录中。有时候也被称作“索引”(Index),不过一般说法还是叫暂存区域。

  • 基本的Git工作流程如下:

    • 1、在工作目录中修改文件。

    • 2、暂存文件,将文件的快照放入暂存区域。

    • 3、提交更新,找到暂存区域的文件,将快照永久性存储到Git仓库目录。

  • git本地基本操作步骤

  • 1.新建一个项目文件夹,进行文件夹中,打git bash执行命令: git init

    • 初始化一个git仓储,其实就是一个隐藏的.git文件夹

    • 不要轻易改变里面文件

  • 2.开始新文件,写我们的代码,写完一个功能,执行命令:git add [文件路径]

    • 示例:git add ./READEME.md

    • 表示要把相应的文件添加到暂存区,暂存区和仓储其实都在.git目录中

    • 批量添加 git add . 或者 git add *

  • 3.把添加到暂存区的文件提交到仓储中.

    • 命令: git commit -m "这时写类似注释的东西"

    • 注意:在提交之前需要配置个人信息 git config --global user.name "xiaoming"
      git config --global user.email "xiaoming@sina.cn"

  • 4.所有需要备份或者提交的文件及目录都必须在.git所在目录。不要超出.git所在目录

x: 在这几步前后,都可以执行命令:git status

  • 撤销操作
  • 撤销已修改状态 git checkout -- 文件路径
    • 撤销addgit status 先看一下add 中的文件 git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了 git reset HEAD XXX/XXX/XXX.html 就是对某个文件进行撤销了

    • 撤销 commitgit reset HEAD

Git网上操作

  • gitHub、gitLab和国内的git网站

    • 这些托管网站就相当于 百度云盘、360云盘 只不过这里上传的是源代码而不是其他东西

    • gitHub大部分收费 官网地址

    • gitLab大部分免费 官网地址

  • git clone

    • 命令:'git clone [仓储地址]'

    • 会把指定仓储的整个下载来

    • 如果不需要下载整个仓储,只需要最新的一次提交,加上参数--depth

  • 登录

  • 直接通过账号密码登录,太麻烦了

  • 通过SSH登录,不用在输入用户名和密码

    • 1.在任意位置输入 ssh-keygen -t rsa 创建rsa密钥

    • 2.将rsa密钥给网站

    • 3.选clone路径的时候选择ssh登录

  • push(推送)

  • 命令:git push [地址] master

  • 或命令:git push origin master

  • pull(拉回)

  • 命令:git pull [地址] master

  • 或命令:git pull origin master

  • remote命令使用

  • git remote add “主机名称” “远程仓库地址”添加远程主机,即给远程主机起个别名,方便使用

  • git remote rm“主机名称” 命令用于删除远程主机。

  • git remote 可以查看已添加的远程主机

  • git remote show “主机名称”可以查看远程主机的信息

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容

  • 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别? SVN是集...
    2015哈哈哈阅读 413评论 1 3
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,581评论 4 54
  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,587评论 1 17
  • 逐渐走进了七月,我却还沉醉在我五月的春风里,的确,时光荏苒,夏天他来了。 坐在教室里,听到第一声蝉鸣,不由感叹时光...
    迷之深阅读 156评论 0 101
  • “这条动态好有趣!我要把它发到朋友圈上让朋友们看。” “哇,鹿晗的微博又发动态啦!这次一定要抢个沙发!” …………...
    新华仔阅读 193评论 0 0