目录
一、Git介绍
二、Git 与 SVN 区别
三、Git 安装配置
1.Linux 平台上安装
Debian/Ubuntu
Centos/RedHat
源码安装
2.Windows 平台上安装
3.Mac 平台上安装
四、安装完成后配置
五、创建版本仓库
六、Git常用命令
1.创建仓库命令
2.提交与修改
3.提交日志
4.远程操作
七、区域划分和Git命令应用示例
区域划分
应用示例:
1.编写readme.md文件
2.git add 把文件从工作区提交到暂存区
3.git status查看仓库中的暂存区当前状态
4.git commit 把暂存区的文件提交到仓库中的永久区(第一次提交)
5.git status 再次查看仓库中的暂存区当前状态
6.提交到暂存区的文件被修改后的提示
7.git commit 把暂存区的文件提交到仓库中的永久区(第二次提交)
8.git log 查看历史提交记录
9.git reflog 查看历史命令,便于查看所有历史 commit_id(例如图片中a357aa6)
10.git reset --hard a357aa6
11.git rm fileName 丢弃工作区的修改内容,从版本库的暂存区恢复
八、Git分支管理
1. git branch 从主线上创建分支 (前提是已经有master)编辑
2. 分别向主线和分支提交多次文件后用 git merge 进行合并分支
3.发现合并冲突,原因是主线跟分支上的文件内容不同
4.在 Git 中,我们可以用 git add 要告诉 Git 文件冲突已经解决
5.最后输出git log --graph --pretty=oneline --abbrev-commit 查看分支日志
一、Git介绍
Git是一个开源的分布式版本控制系统,最初由Linus Torvalds为Linux内核开发而创建。
Git允许多人同时修改同一个代码库并跟踪所有修改的历史记录。
使用Git可以方便地管理和协调项目代码的开发和维护,在开源社区和软件开发中广泛应用。
Git使用简单的命令行接口,也有许多可视化的图形界面工具可供选择。
此外,Git还提供了强大的分支和合并功能,可以轻松地管理多个开发分支和合并它们的变化。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
二、Git 与 SVN 区别
Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。
Git 与 SVN 区别点:
-
1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
-
2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
-
3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
-
4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
-
5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
三、Git 安装配置
在使用Git前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。
Git 各平台安装包下载地址为:Git - Downloads
1.Linux 平台上安装
Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。
在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系),可以用下面的命令安装:
各 Linux 系统可以使用其安装包管理工具(apt-get、yum 等)进行安装:
Debian/Ubuntu
Debian/Ubuntu Git 安装命令为:
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev $ apt-get install git $ git --version git version 1.8.1.2
Centos/RedHat
如果你使用的系统是 Centos/RedHat 安装命令为:
$ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel $ yum -y install git-core $ git --version git version 1.7.1
源码安装
我们也可以在官网下载源码包来安装,最新源码包下载地址:Git - Downloads
安装指定系统的依赖包:
########## Centos/RedHat ########## $ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel ########## Debian/Ubuntu ########## $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev
解压安装下载的源码包:
$ tar -zxf git-1.7.2.2.tar.gz $ cd git-1.7.2.2 $ make prefix=/usr/local all $ sudo make prefix=/usr/local install
2.Windows 平台上安装
在 Windows 平台上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行:
安装包下载地址:Git for Windows
官网慢,可以用国内的镜像:CNPM Binaries Mirror。
完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。
在开始菜单里找到"Git"->"Git Bash",会弹出 Git 命令窗口,你可以在该窗口进行 Git 操作。
3.Mac 平台上安装
在 Mac 平台上安装 Git 最容易的当属使用图形化的 Git 安装工具,下载地址为:
git-osx-installer download | SourceForge.net
安装界面如下所示:
四、安装完成后配置
输入命令设置名字和邮箱
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
设置完成后输入命令查看
git config --global --list
五、创建版本仓库
操作步骤
- 在自己喜欢的地方创建一个目录
- 在命令行终端进入这个目录
- 在这个目录中输入 git init 初始化目录为 Git 仓库
- 初始化完成后,查看仓库目录下是否生成 .git 目录(Linux 下 .开头的文件尾隐藏文件)
六、Git常用命令
1.创建仓库命令
下表列出了 git 创建仓库的命令:
命令 | 说明 |
---|---|
| 初始化仓库 |
git clone | 拷贝一份远程仓库,也就是下载一个项目。 |
2.提交与修改
Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。
下表列出了有关创建与提交你的项目的快照的命令:
命令 | 说明 |
---|---|
git add | 添加文件到暂存区 |
git status | 查看仓库当前的状态,显示有变更的文件。 |
git diff | 比较文件的不同,即暂存区和工作区的差异。 |
git commit -m "" | 提交暂存区到本地仓库,"引用备注" |
git reset --hard commit_id [head^...] | 回退版本,跳转到指定的 commit_id 或者现对于当前节点的某个节点,`^` 表示上一个 |
git rm | 将文件从暂存区和工作区中删除。 |
git mv | 移动或重命名工作区文件。 |
git checkout | 分支切换。 |
git switch | 更清晰地切换分支。 |
git restore | 恢复或撤销文件的更改。 |
3.提交日志
命令 | 说明 |
---|---|
git log | 查看历史提交记录 |
git reflog | 查看历史命令,便于查看所有历史 commit_id |
4.远程操作
命令 | 说明 |
---|---|
git remote | 远程仓库操作 |
git fetch | 从远程获取代码库 |
git pull | 下载远程代码并合并 |
git push | 上传远程代码并合并 |
七、区域划分和Git命令应用示例
区域划分
- - 工作区:提供代码编辑的工作区,只是在仓库的目录里中,并没有真正的添加到仓库
- - 暂存区:仓库中的暂存区,在工作区通过 add 添加到暂存区,可查看代码与工作区的变更情况,选择是否添加到正式的仓库区
- - 时光轴:仓库中的永久区,是由暂存区通过 commit 提交之后的存储区。可记录每一次的正式提交,用于时光倒流
应用示例:
1.编写readme.md文件
2.git add 把文件从工作区提交到暂存区
3.git status查看仓库中的暂存区当前状态
4.git commit 把暂存区的文件提交到仓库中的永久区(第一次提交)
5.git status 再次查看仓库中的暂存区当前状态
6.提交到暂存区的文件被修改后的提示
绿颜色->暂存区跟白色工作区一样
7.git commit 把暂存区的文件提交到仓库中的永久区(第二次提交)
8.git log 查看历史提交记录
9.git reflog 查看历史命令,便于查看所有历史 commit_id(例如图片中a357aa6)
10.git reset --hard a357aa6
11.git rm fileName 丢弃工作区的修改内容,从版本库的暂存区恢复
八、Git分支管理
几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线。
使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
Git 分支实际上是指向更改快照的指针。
有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 Git 从版本控制系统家族里区分出来。
与分支有关常用命令:
git branch <branchName> | 创建分支 |
git checkout -b <branchName> | 创建并同时选择新的分支 |
git checkout/switch <branchName> | 选择分支 |
git branch -d <branchName> | 删除分支 |
git merge <branchName> | 合并到分支 |
git log --graph --pretty=oneline --abbrev-commit | 查看分支日志 |