Git的基本操作

适合于刚开始学习使用Git的开发者,本文收集自李兴华老师的java课程。

一、Git

Git是一个开源的分布式版本控制系统,可以高效、快速的处理从很小到非常大的项目版本管理。

1、设置全局信息

要想进行软件开发,就一定需要软件开发者的人员信息,所以在使用Git前必须配置一些 公共的环境属性。

(1)、设置开发者的用户名称

git config --global user.name 'wlx'

(2)、设置开发者的邮箱信息

git config --global user.email 'wanglixins@163.com'

(3)、取得全部的全局信息

git config --list 或者 git config --l

2、创建仓库

(1)、首先创建一个文件夹

md e:mygit

(2)、将此目录变为仓库目录

进入此目录中进行配置 cd mygit

(3)、初始化仓库

初始化仓库一般有两种方式:
.方式一:创建一个包含有配置信息目录的仓库文件夹;
git init

随后会在当前目录中生成一个 *.git 的隐藏文件夹,这个文件夹包含全部的Git相关的版本信息。
.方式二:直接将当前目录设置为Git仓库
git init --bare

此种方式不再生成 *.git的隐藏目录,而是将所有的配置信息保存在 E:/mygit/

3、仓库的基本操作

在Git中可以管控的范围就是仓库信息(e:/mygit/),只需要将一些文件放进去就可以进行监控了。
在E:/mygit/目录下新建一个Hello.java的文件

(1)、查看当前仓库状态信息

git status

可以发现命令行提示增加了新文件。

(2)、提交文件到暂存库

git add Hello.java 或者 git add .(批量添加文件到版本库)

(3)、将文件提交到版本库

git commit -m "提交的注释信息"
git commit -m "Create New File Hello.java"

现在表示将新的文件提交到Git中进行管理。

(4)、自动增加并提交修改信息到版本库

git commit -a -m "Change Hello.java"

4、比较文件

git diff Hello.java
如果对Hello.java文件做出修改,则修改后的文件会在查询状态中体现出来,如下图:

5、工作区、暂存库、版本库(仓库)的概念

在整个Git中对于文件的操作一共提供三个区域

(1)、工作区:用户所编写的代码 的文件夹,所有操作都以工作区为主;

(2)、版本库:(Git仓库 )

.暂存区:只是将工作区中未保存的文件保存到暂存区中,此部分有Git维护
.版本库:是真正进行项目发布的代码。
首先用户要在工作区中编写程序文件,但此时的文件并不能真正的保存在Git仓库里,在这个区域中进行的文件的新建、修改、删除等操作都不会影响到最终的软件版本发布,好比一个临时的区域。
若要将这个区域里面的文件最终发布,首先需要将其保存在暂存区(git add .)。保存在暂存区的内容是暂时需要的,可以将暂存区的内容删掉。真正能够发布发布的项目必须将其设置在  Master分支上(版本库)。这样只有进行提交后才可以将暂存区中的内容保存在版本库中,才能真正的被其他人所使用(git commit )。
由于项目多次发布,所以在Git里面保存之后都会生成一个提交的版本编号(Commit ID)。

6、版本穿越

版本穿越即可以进行版本回退以及前进,Git进行版本穿越的核心在于每一个“Commit ID”。

(1)、查看当前日志信息:

git log 或 git log --pretty=oneline (在一行中显示)

在Master分支上有一个HEAD指针,这个HEAD指针指的是当前正在使用的版本HEAD指针默认情况下指向最新的提交点。如果说改变了HEAD指针,辣么就相当于可以任意的修改软件的使用版本。

(2)、回退到上一个版本

git reset --hard HEAD~1
每回退一次都回到了上一次的保存点(Commit ID)

(3)、查看所有删除的提交点

git reflog

(4)、恢复到最后一次提交点

git reset --hard 2e6de94bfad2752c4f9b1e567ac6215d9db7baf5

二 、GitHub

1、GitHub简介

Git并没有严格的网络要求,但是个人编写的代码给其他人使用,必须将其发布在网络上。所以Git专门提供了一个网站“www.github.com”,就是Git的一个公共服务器。在这个网站上可以发布两类项目:
    .公共项目(免费):可以将自己的代码交给其他人完善;
    .私有项目(收费):

2、配置远程仓库

GitHub就是一个服务器,它可以保存各个客户端发送过来的数据,可以使用ssh协议来进行客户端与服务器的连接。配置如下:

(1)、启动GITBash

在此命令行窗口中可以执行Linux命令

(2)、在此窗口中输入生成ssh key的命令

ssh -keygen -t rsa -C "wlx@163.com"
命令输入后会询问用户密钥的保存位置,默认会将公钥私钥保存在 C:/用户/.ssh 目录中
随后会提示设置一个密码。

(3)、将公钥内容配置到GitHub上

找到公钥保存位置: C:/用户/.ssh 中有两个文件
.公钥文件: id_rsa.pub 保存在外部使用
.私钥文件: id_rsa 做为本机标示
在GitHub中进入到设置页面,点击“SSH and GPG keys”按钮,随后选择“Add SSH key”,接着把复制的公钥的内容粘贴过来。

以后本台电脑就可以利用ssh的连接方式与GitHub进行代码的 交互了。

(4)、在GitHub上创建远程仓库

3、客户端访问

客户端采用Git进行操作 ,完了之后将 本地代码 同步到GitHub远程仓库中 ;操作如下:

(1)、建立客户端与服务器之间的连接信息

git remote add origin git@github.com:CoderLixin/mygit.git

(2)、将本地代码推送到服务器上

git push -u origin master

4、克隆仓库

在GitHub远程仓库可以直接创建一个仓库,本地要进行开发的话就要取得远程服务器端的仓库信息,GitHub提供了两个连接地址:
.SSH:git@github.com:CoderLixin/mygit.git
.Https:https://github.com/CoderLixin/mygit.git

克隆mygit仓库信息:
git clone git@github.com:CoderLixin/mygit.git

5、创建与合并分支

Git中每一个分支都可能做为一个可以完整运行的项目出现,Git中会存在大量的分支,最关键的 分支是MASTER分支,MASTER分支是给最终用户使用的,不能再master分支上进行开发。要想进行开发,开发者可以建立一个属于自己的分支,并不会一其他分支产生冲突。

(1)、查看当前仓库中的分支

git branch

(2)、创建一个新的dev分支

git branch dev

(3)、切换到dev分支上

git checkout dev

(4)、在dev分支上编写代码

(5)、增加文件到版本库中

git add .
git commit -m "Add Person.java"

(6)、切换回master分支进行分支合并

git checkout master(快速合并)
git merage --no-ff -m "user no-ff merage" dev(no-ff方式,带提交点)
git merge dev

(7)、将分支提交到服务器上

git push -u origin master
git push -u origin dev

(8)、删除分支

git branch -d dev (本地)
git push origin --delete dev (远程仓库)

原文地址:https://www.cnblogs.com/coder200/p/10491384.html