title: Git与Github的应用 tags: Git,Github grammar_cjkRuby: true
(一) Git和GitHub的简单了解
1. Git 是什么
- ==Git==是目前世界上最先进的==分布式==版本控制系统
2. Git和GitHub有何区别
Git
是一款免费开源的分布式版本控制系统 --- 工具Github
是用Git做版本控制的代码托管平台 --- 平台,就是一个网站- Github这个平台,底层是使用git工具来实现版本控制的。
(二) 快速入门
1. 安装Git
- 安装的过程属于傻瓜式安装,一直下一步即可
- 安装之后,会在右键菜单出现如下两个菜单项:==Git gui== 和 ==Git bash==
- 我们使用的是==Git bash==
- 整个bash窗口,除了可以执行git相关命令之外。它还可以作为cmd窗口来使用,可以执行任何在cmd窗口中可以执行的命令。比如 ipconfig 、 npm命令
2. 使用流程
-
典型的流程如下:
- 初始化一个Git仓库(==git init==)
- 设置用户名和邮箱
- 添加文件到仓库(==git add 文件名1 文件名2== 或 ==git add *== )
- 提交 (==git commit -m “说明文字”==)
- 查看版本 (==git log==)
- 回退 (==git reset --hard==
HEAD^
/commit_id
)
-
(1). 初始化一个Git仓库 在项目的工程下,使用右键中的git base here 调出控制台并使用==git init==命令来进行初始化(此项工作是在项目开发之前进行的)
==它会在当前目录下,创建一个.git的隐藏目录。如下:==
- (2). 设置用户名和邮箱
只是在第一次使用git的时候,需要设置,以后就不需要设置了。
git config user.name 用户名 git config user.email 邮箱
- (3). 添加文件到仓库
git add 文件名1 文件名2 git add * (添加所有的文件)
这个过程可以重复
- (4). 提交 如果你任务某一个完整的模块/功能已经实现了,可以将其做出一个版本。
使用:==git commit -m 说明==
- (5). 查看版本 使用git log来查看版本的信息,如下:
- (6). 回退
有两种方式:
直接返回上一级 几个^就是返回几级 git reset --hard HEAD^ 通过版本的id回到对应的版本位置 git reset --hard commit_id
(三).基本操作
1. git config ==作用==:就是对配置进行操作的 可以使用git config --list 查看所有的git配置项
其中,在使用的过程,需要对用户名和邮箱进行配置。 git config user.name 用户名 git config user.email 邮箱
2.git init ==作用==:就是用于初始化版本仓库的。 使用的时候,可以有如下两种用法:
创建好目录,然后直接git init 直接git init 项目名称
一旦使用了git init命令,那么就会在项目目录下,创建一个.git的隐藏目录。 在linux操作系统中,以点开头的目录都是隐藏目录。
该目录是版本仓库,是git来维护的,用户不能在这个目录中做任何的操作
3.git status ==作用==:用于显示当前版本仓库的状态。在不同的阶段,显示的信息是不一样的。
初始时,如下:
4.Git log ==Log== 是日志的意思。 ==作用==:就是显示版本信息。
5.git add ==作用==:将指定的工作区的文件,添加到版本仓库的暂存区。
命令的典型格式:==git add 文件名1 文件名2 文件名n== 如果一次性添加当前目录所有的,可以使用 ==git add *==
==注意==:如果需要从暂存区中删除某个文件,可以使用 git rm --cached 文件名
6.git commit ==作用==:就是用于将暂存区中的所有文件提交到master分支上,做成一个版本。 格式:
git commit -m 说明文字
7.git reset ==作用==:就有用于进行回退。 可以使用git reset回退到任意版本。
==用法有如下两种:==
git reset --hard HEAD^git reset --hard commitid复制代码
- (1).git reset --hard HEAD^
- 这种方式,只能回退到历史版本。
HEAD^:回退到当前版本的上一个历史版本 HEAD^^:回退到当前版本的上上一个历史版本 HEAD^^^:回退到当前版本的上上一个历史版本 HEAD~n:回退到当前版本的前第n个历史版本
- (2).git reset --hard commitid
可以回退到任意版本,既包括历史版本,也包括未来版本。非常强大。 唯一需要拿到的就是commitid
(四) 多人协作开发
1. 多人协助具体实现
典型的步骤如下: 创建一个git裸服务器 (git init --bare) 从裸服务器将版本库克隆至本地(git clone ) 本地常规操作 推送版本至服务器 (git remote + git push origin master) 从远程服务器拉取版本(git pull)
(1).创建一个git裸服务器
- 命令:==git init --bare==
创建如下:
==注意==:git裸服务器中,整个目录都是版本仓库,没有工作区。也就意味着不能在git裸服务器的项目目录中编写代码。
(2).从裸服务器将版本库克隆至本地
- 格式:==git clone url==
(3).推送版本至服务器
==场景==:甲的第一个版本已经完成了,但是它是在本地的,其他程序员是看不见的,也用不了。 所以,需要甲将本地的版本库,同步更新到git裸服务器,通常描述为推送版本。
需要使用如下两个命令:
git remote
,获取git服务器的名称git push origin master
,推送
- git remote,获取git服务器的名称
- git push origin master,推送
(4).推送版本至服务 ==场景==:同步更新,就是将当前开发人员的最新版本同步到服务端,会以当前开发人员的版本为准。(理解为覆盖)
为了确保,可以推送,每个开发人员在推送版本之前,必须要确保自己的版本是最新的版本。此时,可以从服务端拉取最新版本到本地,然后再推送。
==git pull 命令拉取即可==
小结:
在实际开发中,需要来回的进行pull和push。 需要注意一点:多个程序员不要同时去修改某一个文件,否则就会出现冲突。
(五) 分支
1.分支常见操作
主要有如下几个操作: ◆ 查看当前分支 (git branch) ◆ 创建分支 (git branch 分支名) ◆ 切换分支(git checkout 分支名) ◆ 分支上的常规操作 ◆ 分支的合并 (git checkout master + git merge 分支名) ◆ 分支的删除(git branch -d 分支名
(1).查看当前分支
- 命令:==git branch==
(2).创建分支
- 命令:==git branch 分支名==
(3).切换分支
- 命令: ==git checkout 分支名==
(4).分支的合并
- 命令:==git merge 分支名== 合并只能在master上进行的。
(5).分支的删除
- 命令:==git branch -d 分支名== 这个通常是在master上进行的