Git教程

littleorange7 2019-03-20 原文

Git教程

Git+GitHub+Idea

前言

本教程使用Git+gitHub+Idea讲解如何使用Git来进行代码的版本管理(当然此处的GitHub可以使用gitlab或是其他的git远程仓库服务),整个过程是从实际项目开发的过程开始的,包括仓库的创建,到工程代码的提交,分支的建立,分支的合并等;

首先准备工作是:有GitHub账号(实际使用可以是其他的git应用),并且会使用GitHub建立远程仓库,本地有可以提交的工程代码,本地已经安装了git,已经连接到GitHub,并且集成到了idea中;

本节讲解的开发模式:远程仓库master是作为生产代码的,不在此分支上开发,创建一个远程dev分支作为开发分支,所有开发者都在dev分支上开发,然后等dev分支代码稳定之后,将dev分支的代码合并到master分支上;

一.远程GitHub仓库的创建

创建GitHub仓库之后如下,现在仓库中没有代码;

 

二.本地工程代码的提交

我的demo代码工程如下:

 

 

下面开始将本地demo工程提交到GitHub仓库中:

创建本地仓库:

git init

创建远程origin:

git remote add origin git@github.com:Little-Orange7/demo.git

将本地工程代码添加到本地git:

git add <代码工程>

例如:git add demo

将添加到本地git的代码提交到本地仓库:

git commit -m “注释提交”

将本地仓库的代码提交到远程仓库(注:下面是初始提交):

git push -u origin master

 

 

此时远程仓库就有我们提交的代码了,然后将这个远程代码作为主分支,在远程仓库中创建一个开发的分支,所有的开发

人员都从这个开发分支上检代码和提交代码;

三.远程仓库分支的创建

 

 

 

注:远程仓库创建完dev分支之后,默认就是把主分支的代码copy了一份作为dev分支,所以此时的dev分支代码和主分支的代码是一样的;

 

 

 

四.开发者检出分支代码

因为提交代码到远程分支,这里就涉及到检出到本地的代码和远程分支的关系,要建立本地分支和远程特定分支关联关系,因为后面使用idea开发工具会很方便,所以此处我只讲解最简单的方式;

1.使用idea工具检出代码:

打开idea

URL处输入Git代码的地址,Directory选择本地存放代码的路径,首次test会弹出输入用户名和密码弹框,用户名和密码是之前注册gitHub时的用户名和密码(之后就不需要输入用户和密码了)

test完成connect successful后,选择要存放代码的目录,点击clone就可以检出代码了。

 

2.使用git命令行工具检出代码:

其他开发者创建一个目录,然后在该目录下:

创建本地git仓库:

git init

然后clone远程仓库代码到本仓库:

git clone git@github.com:Little-Orange7/demo.git

注:此处git@github.com:Little-Orange7/demo.git是我的仓库地址,要改成你自己的,

此时本地git会包含所有的远程仓库的分支信息,接下来使用idea开发工具来操作git;

 

五.开发者提交代码到分支

使用idea来创建分支,建立分支关联关系,提交代码;

使用idea打开刚才clone的工程,然后在右下角点击Git会自动显示远程git仓库的所有分支和本地仓库(默认会创建一个master仓库);

1.按照下图的提示,在本地创建一个分支,该分支会自动和所选择的分支建立关联关系,pull代码时会自动从该关联的远程分支上拉取代码:

 

 

2.切换本地分支为要修改的分支

切换本地不同的分支,代码也可能会不一样,所以在修改代码之前,一定要确认当前本地的分支是自己要修改的分支:

 

 

3.修改代码后提交

先commit到本地当前分支的仓库,如果本地测试没问题,可以push到远程分支上,push代码时可以选择分支,但是默认会提交到关联的远程分支上,如果不是merge,都不要更改要提交的远程分支;

下面是git视图,没有修改的话,会不会有变动信息的,如下:

 

 

下面我修改一下文件,可以看到修改的文件变动在下面可以看到:

 

 

然后我提交修改内容:

 

我们只commit到本地分支了,但是没有push到远程dev分支上,如果想把

commit到本地仓库的代码push到远程分支上,可以在git视图下右键,然后按照下面

的图示选择push;

 

 

 

然后会弹出push窗口如下,可以看见提交的注释,选择要push的代码然后push就可以了;

 

 

push成功之后,可以在log查看提交记录,如下:

 

 

在远程仓库中也可以看到提交记录,如下:

 

 

六.将远程dev分支代码合并到master上

合并远程dev分支代码到远程master分支上有几个步骤:

(例子中,关联远程dev分支的本地分支为demoPull)

1.切换本地分支为所关联的远程dev分支demoPull;

 

 

2.本地分支pull,将远程分支代码pull到本地demoPull分支上;

此时pull,会将本地demoPull分支所关联的远程dev分支代码pull到本地

 

3.merge将本地demoPull分支代码合并到远程master分支上(实际都是本地合并,并未提交到远程master上)

 

 

4.将merge的master提交到远程master分支上

 

 

 

七.其他补充

一.Git本地仓库连接GitHub远程仓库

由于本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要一点设置:

第一步:本地创建SSH Key

ssh-keygen  -t rsa –C “youremail@example.com”

 

 

第二步:将public key添加到github

打开id_rsa.pub文件,将密钥复制到github的sshkey中

 

 

二.Git的本地仓库的使用

网上有很多,这里就不多写了,可以参考其他文章

①.本地创建git:git init

②.创建(修改)用户名和email:

(注意设置完之后,这个和具体仓库无关,和git有关,所有的提交到任何的仓库时,都将默认此用户名提交,除非在提交之前,修改用户名)

git config –global user.name “用户名”

git config –global user.email “邮箱”

查看用户名和email:

git config user.name

git config user.email

发表于 2019-03-20 20:13 128度 阅读() 评论() 编辑 收藏

 

版权声明:本文为littleorange7原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/littleorange7/p/10567318.html

Git教程的更多相关文章

  1. Git提交错了不用慌,这三招帮你修改记录

    大家好,今天我们来聊聊git当中一个很重要的功能——历史记录的修改。 有的时候我们会突然发现某个地方需要修改, […]...

  2. Git教程

    Git教程 参考: 1:廖雪峰-Git教程 一、Git简介 1、版本库(仓库):repository 2、所有 […]...

  3. git rebase的时候捅娄子了,怎么办?在线等……

    大家在使用git的过程当中有闯过祸吗? 我闯过,我闯的第一个祸就是使用git rebase造成的,虽然后来最终 […]...

  4. 学会这三个命令,你就不再是git只会用三板斧的菜鸟了

    前言 在之前的文章当中我们介绍了最基本的git add、git commit和git push的用法以及基本原 […]...

  5. 操作失误不要慌,这个命令给你的Git一次反悔的机会

    今天我们来介绍git当中两个非常非常好用的工具,git show和reflog。 这两个命令虽然不是必知必会, […]...

  6. 想成为Git大神?从学会reset开始吧

    大家好,今天我们来着重介绍一个非常关键的功能就是reset。在上一篇文章介绍修改历史记录的时候曾经提到过,当我 […]...

  7. 详解git rebase,让你走上git大神之路

    在之前的文章当中我们介绍了git merge的用法,明白了通过git merge我们可以合并两个分支的改动。这 […]...

  8. Git仓库的提交记录乱成一团,怎么办?

    大家好,今天和大家聊聊git当中一个非常好用的功能——区间选择,它可以帮我们处理看起来非常复杂的提交记录。从而 […]...

随机推荐

  1. vue地址栏发生变化但是页面不会更新怎么办

    话不多说直接上问题,主要是在使用router-link进行页面跳转时,使用query进行地址栏传输数据,发现当 […]...

  2. Syncthing就是我要的同步备份软件 – 挥辉

    Syncthing就是我要的同步备份软件原创徐念安 发布于2019-02-07 23:10:25 阅读数 25 […]...

  3. js怎么动态加载js文件(JavaScript性能优化篇)

    下面介绍一种JS代码优化的一个小技巧,通过动态加载引入js外部文件来提高网页加载速度   【基本优化】 将所有 […]...

  4. socket

    socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,在设计模式中,socket就是一个 […]...

  5. CTO们接着吼:创业公司几乎全是坑!

      昨天推送了【CTO集体怒吼:我到底要不要继续写代码!】,CTO们的万字感慨,让很多技术人叫好。今天继续推送 […]...

  6. linux常用基本命令

      Ubuntu的图形界面使用起来非常方便,但是要想对Linux熟练掌握,就必须学会它的操作命令。虽然可能会花 […]...

  7. LWJGL3的内存管理

    LWJGL3的内存管理 LWJGL3 (Lightweight Java Game Library 3),是一 […]...

  8. 1-3. Linux下移动图像监测系统——motion的移植及应用

      移动图像监控主系统的开发<-(报警子系统+图像采集子系统) 移动图像监控的原理方法:   通过获取摄 […]...

展开目录

目录导航