首先什么是git呢?
就是一个帮我们管理文件版本的程序,专业名称叫:分布式版本控制系统。
github呢?
GitHub 担任了的远程仓库这一角色,就是一个存放在外网服务器上的一个文件夹。 当然远程仓库除了 GitHub 之外,还有 Gitee(码云)。
假如现在我们有这样一个情况相信很多小伙伴都遇到过
你写了一篇文章,要删除某一个段落,为了防止以后需要找回这个段落,你需要为这个文件备份。 如果你第一次删除了段落1,第二次修改了段落2,第三次添加了段落4,则需要为每一个版本都建立一个备份。(还有一个办法是注释掉修改的代码,在下面写添加的代码,但是时间久了就弄不清楚了)你的文件可能看上去是这个样子: 版本多了,你想恢复修改前的段落2,却不记得是那个备份,所以你需要一个一个文件去翻阅查找,非常麻烦。 这时你可能会写一个说明文档,文档中记录了:副本(1)——删除段落1;副本(2)——修改段落2;副本(3)添加段落3...... 有了这些摘要你能很快定位到需要的文件。 可是修改了第112行,或者是修改了114、118和119行呢?你不可能有耐心记录下每个版本修改了哪几行,所以这些修改很难定位,找起来特别费神。
在这个时候有什么办法可以解决这个问题呢?当然有这就是我们需要了解的一个版本控制管理系统
版本控制系统就是自动的帮我们完成上面操作的系统或者说就是一个应用程序 版本控制系统如何帮我们控制版本? 我们需要进行版本控制的文件都要提交到一个**仓库(其实就是一个隐藏文件夹)**里面,我们对文件做出的修改都会被这个版本控制系统侦测到,如果我们要保留这个版本的文件,就要通过版本控制系统提供的命令把文件提交到仓库里面,然后版本控制系统就会自动为我们提交的文件打上版本号。
仓库分几种?
- 本地仓库:建立在本地的文件夹。
- 远程仓库:建立在互联网的服务器内的文件夹。
哪版本控制系统分为几种呢?
分布式版本控制系统
配有上述两个仓库,在你的电脑上有一个本地仓库,在远程的服务器上有一个远程仓库。 我们在提交文件的时候会先提交到本地仓库,然后在有网络的情况下,再从本地仓库提交到网络上的远程仓库。 Git 就是一个典型的分布式版本控制系统
集中式版本控制系统
只配有上述的远程仓库,当然如果你的这台电脑就充当远程服务器的角色,那远程仓库其实就在你这台电脑上。 我们在提交文件的时候是直接提交到远程仓库。 SVN 就是一个典型的集中式版本控制系统
下面是一些Git和GitHub使用方法
一。 在使用Git前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。
Git 各平台安装包下载地址为:git-scm.com/downloads
二、安装过程
1. 下载完成后,双击下载好的软件开始安装,出现如下对话框




5. 继续next,以下选项均为默认。





一、安装后的设置
安装完成后需要设置自己的git账号和邮箱,否则无法正确使用,但是到目前为止还没有申请git账号,下面就来说一下具体的账号申请和git设置过程。点击账号申请网址. 输入自己想要的账户名,自己的邮箱和密码,账户名只能包含字母和数字字符或者是单个连字符“-”并且连字符不可以作为开头或者结尾;密码中至少包含一个字母,一个数字,并且长度不小于7个字符。输入完成后后点击“Sign up for Github”,进入如下界面,同时注册用的邮箱中会收到一封GitHub的邮件。
二
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。账号申请完成后,打开命令行或者Git Bash,输入 git config --global user.name “Your Name”,之后回车,再输入 git config --global user.email email@example.com 其中Your Name和email@example.com替换成上面注册时的账户名和邮箱。 命令行下输入和Git Bash下输入均可。 命令行下输入如图:

下面是一些Git常用的指令
- git init
初始化git环境,会生成.git文件夹
- git add 文件名(比如:git add demo.txt)
注意:使用此命令可以一次添加多个文件,比如:git add test.txt demo.txt
将本地区文件添加到git的暂存区
- git commit -m "这里是提交说明"(比如: git commit -m "添加了删除的方法")
这里需要注意 :第一次执行这条命令的时候必须先执行两个命令
(1)git config user.name "这里是自定义的用户名"(比如:git config user.name "langlang")
设置git提交的用户名
(2)git config user.email "这里是自己的邮箱" (比如: git config user.email "129259684@qq.com")
设置git提交的邮箱
如果没有在git commit之前执行这个命令的时候会出现错误:please tell me who are you?(请告诉我你是谁?)
并且不会提交成功!
- rm 文件名(比如:rm demo.txt)
删除本地文件,git版本库的文件不会被删除
- git rm -- 文件名(比如:git rm -- demo.txt)
删除git版本库的内容,连同本地文件一同删除
6.git checkout -- 文件名(比如:git checkout -- demo.txt)
撤销本地操作
注意:本命令只能操作本地文件,使用 gie add 或者 gie commit 之后不能进行撤销操作
- cat 文件名 (比如: cat demo.txt)
查看文件内容
- git status
查看暂存库的操作状态
- git reset --hard HEAD^
回退到上一个版本,回退到上上个版本是 git reset --hard HEAD^^,当然一次类推,这样如果版本很多要想回退到
前100个版本怎么办,当然也是有解决方法的,使用 gie reset --hard HEAD~100 方法解决这个问题,100是回退到
前100个版本。
10.git log
查看git的操作日志,会输出很多信息,看的眼花缭乱,出现这种情况我们可以尝试着在 git log 后面加上 --pretty=oneline
(比如:git log --pretty=oneline)
执行完成之后就不会像以前那样了。
11.git reflog
查看版本信息
- git reset --hard 这里是版本的16进制码,取前5位就可以(比如:git reset --hard 7842eaa)
就是回退到ID16进制码为7842eaa 的版本
- git diff 文件名 (比如 : git diff demo.txt)
查看对此文件的操作记录
- git diff HEAD -- 文件名(比如:git diff HEAD -- demo.txt)
可以查看工作区和版本库里面最新版本的区别
- ssh-keygen -t rsa -C "邮箱地址"
生成SSH key秘钥,秘钥生成后一般会在/c/Users/Admini strator/.ssh/id_rsa目录下
- cd ~/.ssh
查询秘钥是否存在
- git checkout -b 分支名
创建分支并切换到分支
- git checkout 分支名
切换到某一个分支
- git checkout master
切换到主分支
- git branch
查看当前分支
- git merge 分支名
合并分支
- git branch -d 分支名
删除指定分支
git branch -D 分支名
删除本地的某个分支
git branch -r -d origin/分支名
删除远程的分支
- git tag v1.0
添加新标签
- git tag
查看所有标签
- git log --pretty=oneline
查看历史提交的版本
- git show v0.9commit622493706ab447b6bb37e4e2a2f276a20fed2ab4
查看标签信息
- git push origin git@github.com:邮箱地址/仓库名.git
将本地仓库的文件推动到github
- git remote add origin git@github.com:邮箱地址/仓库名.git
让本地仓库和远程仓库建立连接
- gie clone git@github.com:邮箱地址/仓库名.git
克隆到本地仓库