zoukankan      html  css  js  c++  java
  • 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 (远程仓库)

  • 相关阅读:
    Mybatis集成dbcp-java.lang.AbstractMethodError: Method org/apache/commons/dbcp/DelegatingResultSet.isClosed()Z is abstract
    Word 错误提示“此功能看似已中断,并需要修复” 解决
    解决 org.springframework.context.annotation.ConflictingBeanDefinitionException
    IDEA中的JAVA WEB项目启动报错的定位方法
    Oracle数据库中包含CLOB字段表的导出和导入
    idea terminal修改为gitbash多彩
    企业微信如何发红包 企业微信向个人发红包 企业微信群无法发红包 企业微信无法发红包 企业微信无法发红包如何解决
    vue项目中使用ts(typescript)入门教程
    svg / d3-force 中如何给link的label文字加底色
    svg 如何使用滤镜给文字加底色
  • 原文地址:https://www.cnblogs.com/coder200/p/10491384.html
Copyright © 2011-2022 走看看