前言

感谢! 承蒙关照~

Git的初步学习

为什么要用GitGithub呢?它们的出现是为了用于提交项目和存储项目的,是一种很方便的项目管理软件和网址地址.

接下来看看,一家公司的基本流程图:

集中式->分布式->托管网站

之前项目管理的日子:

项目开发,版本控制系统.

  1. -v1.0
  2. -> 文件
  3. -v1.1
  4. -> 文件

本地版本控制系统

慢慢地有了项目管理系统加入,集中式的控制系统:

集中化的版本控制系统

  1. Centralized Version Control Systems,简称 CVCS

分布式版本控制系统

  1. Distributed Version Control System,简称 DVCS

Git的特点:

Git的功能:

Git简介:

Git是一个伟大的创新,到 2002 年,项目组开始启用一个专有的分布式版本控制系统 BitKeeper管理和维护代码。

版本控制系统,就是一个名词而已吧,Git 是为了方便人们而发明的,当我们每次写完代码时,提交到 Github 上时,我们会记录下提交说明,简述该代码写了什么内容,做了哪些更改,能够方便记录,在 Github 上回记录你代码的增删情况,就可以了解你每次做了什么,改过什么,很方便也对他人了解你的操作行为。

当你进行结对操作项目时,你的伙伴能通过了解提交说明了解你的行为操作。

Git的三种状态,为已提交(committed)、已修改(modified)和已暂存(staged

已经提交表示数据已经安全的保存在本地数据库中,已经修改表示修改了文件,但是没有保存到数据库中,要进行提交,已暂存表示对一个修改的文件进行标记,然后提交时,包含在其中.

我们先下载Git,安装Git

Git下载网站为:

https://git-scm.com/downloads

Git官方文档地址:

https://git-scm.com/book/zh/v2

https://git-scm.com/download/mac

https://git-scm.com/download/win

Windows 上安装

  1. $ tar -zxf git-2.0.0.tar.gz
  2. $ cd git-2.0.0
  3. $ make configure
  4. $ ./configure --prefix=/usr
  5. $ make all doc info
  6. $ sudo make install install-doc install-html install-info

使用Git来升级:

  1. $ git clone git://git.kernel.org/pub/scm/git/git.git

建议使用这个网址安装:

  1. http://git-scm.com/download/win

我们在用Git的时候,有三个工作区域的概念:

  1. Git仓库
  2. 工作目录
  3. 暂存区域

Git仓库是用来保存项目文件的地方,工作目录是对项目的某个版本独立提取出来的内容,暂存区域是一个文件,保存了下次将要提交的文件信息.

小图标:

设置账号:

如何设置账号,首先你要去 github 网站上进行注册,拥有自己的账号先:

打开你下载好的 GIT,“Git Bash” 软件

$ git config --global user.name "your_name"

$ git config --global user.name "your_email@example.com"

做好配置user.nameuser.email.

Git获取帮助

获取Git命令手册:

  1. $ git help <verb>
  2. $ git <verb> --help
  3. $ man git-<verb>

获取config命令手册:

  1. $ git help config

git config 的工具来帮助设置控制 Git 外观和行为的配置变量:

  1. /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置
  2. ~/.gitconfig 或 ~/.config/git/config 文件:只针对当前用户
  3. .git/config:针对该仓库

创建版本库

右键鼠标点击Git Bash

  1. $ git init url

然后添加文件,使用命令git add <file>,接着使用git commit -m "信息介绍",就大功告成了!

查看配置

  1. 可以使用 git config --list
  2. // 显示配置
  3. // 列出所有 Git 当时能找到的配置
  4. git config --list [--local | --global | --system]
  5. local:区域本仓库
  6. global: 当前用户的所有仓库
  7. system: 本系统的所有用户
  8. git config --local 只对某个仓库有效
  9. git config --global 对所有用户的仓库有效
  10. git config --system 对系统所有登录的用户有效
  11. git config --list --global
  12. git config --list --system
  13. git config --list --local
  14. // git config
  15. --get
  16. --get-all
  17. --get-regexp
  18. --get-urlmatch
  19. --replace-all
  20. --add
  21. --unset
  22. --unset-all
  23. --rename-section
  24. --remove-section
  25. --list or --l
  26. --edit or --e
  27. --get-color
  28. --get-colorbool

一些 Git 操作

创建版本库:

  1. mkdir repository
  2. cd repository

通过使用 Git bash git init 命令把该目录变成 Git 可以管理的仓库,就是可以放代码的目录了,好像粮仓一样,很爽!!!

  1. git add text
  2. git commit -m "imformation"
  1. git status 查看仓库状态(告诉你有文件被修改过)
  2. git diff 查看修改过的内容
  3. git status 提交后查看状态
  4. // 版本和命令历史
  5. git log 查看提交历史
  6. git reflog 查看命令历史
  7. // 删除文件
  8. $ git rm <file>
  9. $ git commit -m "信息"
  10. // 误删
  11. $ git checkout -- <file> 返回原文件
  12. // 撤消操作-漏掉了几个文件没有添加,或者提交信息写错了-将暂存区中的文件提交
  13. $ git commit --amend
  14. $ git commit -m 'initial commit'
  15. $ git add forgotten_file
  16. $ git commit --amend
  17. // 打标签
  18. $ git tag
  19. v0.1
  20. v1.3

创建Git仓库

  1. $ cd 项目代码所在目录下的文件夹
  2. $ git init

手把手教你如何把项目或代码提交到Github托管

从远程库克隆, 启动 Git Bash 命令行

首先打开你的github,点击新建项目,点击new repositories ,然后直接给项目命名就好了.

克隆仓库的命令格式是

git clone [url]

  1. $git clone git@.....git

打开命令行,输入下方:

复制地址就是:https://github.com/…./Test.git

点击这里复制链接即可:

  1. // 输入
  2. // 目录下初始化一个 .git 文件夹
  3. $ git clone https://github.com/…
  4. $ cd test
  5. 前提下你得把你的项目复制放进test路径下。
  6. $ git add .
  7. $ git commit -m changes log
  8. $ git push origin master

注意如果每次修改完成后,如果没有使用add添加的命令,那么修改的代码会在暂存区中,而直接使用commit的话,是不会看到修改后的代码所在的.

总结:

  1. mkdir 为建立文件夹
  2. mkdir images 文件夹名为images

工作目录->暂存区->版本历史

  1. git add files 为从工作目录中修改的代码放入暂存区
  2. git commit 为从暂存区中修改的代码提交,变为版本历史
  3. li -al 遍历文件
  4. git add -u 修改的文件一起提交
  5. git reset --hard 清除暂存区和工作区
  6. // 重命名文件
  7. git mv index index.md
  8. git status
  1. $ git status 先查看
  2. $ git add index.html images 添加暂存区文件,可以多个文件名
  3. $ git status 查看是否提交

说明

如何看版本历史

  1. git log // 按提交时间列出所有的更新
  2. // 使用不同于默认格式的方式展示提交历史
  3. $ git log --pretty=oneline
  4. git log --online // 非常简洁,有什么历史
  5. // 简略的统计信息
  6. $ git log --stat
  7. // -2 仅显示最近两次提交
  8. $ git log -p -2
  9. git log -n4 --online 看最近的历史消息
  10. git branch -v 看本地有多少分支
  11. git checkout -b dashu 223343232 // 分支 , 修改分支
  12. // ls -al
  13. // git commit -am'test'
  14. bit branch -av
  15. git log --oneline --all // 分支所有呈现

图形界面工具gitk

输入:

  1. gitk

都可以进行了解学习

查看.git目录

  1. ls -al // 列出列表
  2. .git
  3. cd .git
  4. ls -al
  5. cat .git // 查看文件

commit每次的变更,treeblob

blob指具体的某个文件,blob跟文件名没关系,gitblob文件内容相同就是一个东西.大树包小树,到文件.

  1. commit->
  2. tree
  3. parent
  4. author
  5. ...

命令:

  1. git cat-file -p 23452324
  2. tree 23434323
  3. parent
  4. author
  5. committer
  6. git cat-file -p 23434323
  7. tree
  8. blob 2324335
  9. blob
  10. tree
  11. git cat-file -p 2324335

一个commit由多少个treeblob

一个commit,两个tree和一个blob,和一个commit.

  1. commit
  2. tree
  3. parent
  4. author
  5. tree
  6. tree doc
  7. tree
  8. blob readme
  9. blob hello

文档:

https://git-scm.com/book/zh/v2

  1. 创建或者克隆一个仓库
  2. 更改、暂存并提交

达叔小生:往后余生,唯独有你

You and me, we are family !

90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通

简书博客: 达叔小生

https://www.jianshu.com/u/c785ece603d1

结语

  • 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
  • 小礼物走一走 or 点赞

Git的初步学习的更多相关文章

  1. 浅谈自我对git的初步认识

    本学期我们新增了一门课程,那就是软件工程,不知道为什么,感觉有种莫名的高大上.哈哈!难道是这个名称太抽象了吗?这个问题我感觉到后来肯定就明白了. 第一次博客,感觉好紧张哦,嘿嘿!老师让我们谈谈对git ...

  2. Git 笔记三 Git的初步使用

    Git 笔记三 Git的初步使用 在上一篇中,学习了如何配置Git环境,这一篇,开始学习Git的初步使用.Git的初步使用还是很简单的.总体上知道git init, git clone, git ad ...

  3. React初步学习-利用React构建个人博客

    React初步学习-利用React构建个人博客 用React和Webpack写了一个很简单的个人博客,主要是想要熟悉一下react中各种基本基本属性及方法的使用.在构建过程中碰到不少问题,通过阅读官方 ...

  4. Httprunner初步学习

    一:简介 一直在技术博客上看到Httprunner测试框架,但始终不太明白这个框架的具体作用,今天就花点时间来初步学习了解一下. HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架, ...

  5. json2.js的初步学习与了解

    json2.js的初步学习与了解,想要学习json的朋友可以参考下. json2.js的初步学习与了解 1.)该js的下载地址是:http://www.json.org/json2.js 2.)在页面 ...

  6. 老周的ABP框架系列教程 -》 一、框架理论初步学习

    老周的ABP框架系列教程 -- 一.框架理论初步学习   1. ABP框架的来源与作用简介 1.1  简介 1.1.1       ABP框架全称为"ASP.NET Boilerplate ...

  7. git的初步使用---本地代码库的使用和提交

    git的初步使用---本地代码库的使用和提交 git是一个好东西,但对于新手来说,这个工具并不好使用,因为它里面涉及到很多东西,而这些东西新手一时间是无法理解的.不幸的是,本人就是新手一枚,所以,这里 ...

  8. 初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助

    初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助,如果有bug或者更好的优化方案,也请批评与指正,谢谢,代码如下: var fs = require('f ...

  9. EF Codefirst 初步学习(二)—— 程序管理命令 更新数据库

    前提:搭建成功codefirst相关代码,参见EF Codefirst  初步学习(一)--设置codefirst开发模式 具体需要注意点如下: 1.确保实体类库程序生成成功 2.确保实体表类库不缺少 ...

随机推荐

  1. jmeter javamail 邮件格式再优化(由详情——>改为统计)

    前言:之前扩展的ant—jmeter支持邮件附件形式上传以及邮件内容的html文件格式. 如图: 由于邮件的内容格式是详情信息,也就是说直观的显示的是case,但由于case的增加,邮件内容越来越大! ...

  2. linux学习第十七天 (Linux就该这么学)

    今天12月14日学习比较少点,等了一会,主要讲了squid代理,1,正向代理 2反向代理 正向代表分为:标准的正向代理,透明的正向代理 ,这个比较实用, 还讲了RHCE考试的中的内容  iscsi 是 ...

  3. GUI学习之十——QFrame和的QAbstractScrollArea学习总结

    上一章我们学习了单行的文本框QLineEdit类,下面我们要为多行的文本框的学习坐下准备,总结一下QFrame类和QAbstractScrollArea类 一.QFrame类 1.描述 QFrame的 ...

  4. vue中v-for的使用

    本人正在开始学习Vue,每天写写基础的记录,希望对大家有帮助,如有错误还望指出,我也是一个小白,也希望大家能一起进步 v-for指令的使用: 1.循环普通数组 item in list 中的item是 ...

  5. 笔记javascript

    // var demo1=12;// alert('点击确定按钮看结果'+demo1);// for(var i = 0; i<10;i++)// {//     document.write( ...

  6. Sublime text 2/3 [Decode error - output not utf-8] 完美解决方法

    原文链接 http://blog.csdn.net/bbdxf/article/details/25594703 [Decode error - output not utf-8]或者[Decode  ...

  7. No rule to make target '/usr/lib/x86_64-linux-gnu/libproj.so ,needed by '../bin/generate_pointcloud解决方法

    这是/usr/lib/x86_64-linux-gnu/文件夹内没有这个libproj.so 库,先在该文件夹内搜索是否有同名不同版本的库,如果有 ,可以使用ln -s在该文件夹内部对存在的库链接到一 ...

  8. FTP模式简式:PORT/PASV/EPRT/EPSV

    简介 常见FTP有两种模式:PORT(主动模式).PASV(被动模式). 而EPRT/EPSV模式出现的原因是FTP仅仅提供了建立在IPv4上进行数据通信的能力,它基于网络地址是32位这一假设.但是, ...

  9. 利用canvas实现刮刮乐效果

    最近做了个情人节表白的项目,表白内容时被遮盖的,刮开后才能显示,并且刮开一定比例后清空所有遮罩. function guaguale(obj,w,h){//obj时canvas元素 var canva ...

  10. MySQL 多表结构的创建与分析

    =====================多对一===================== create table press( id int primary key auto_increment, ...