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中分支的原理和应用

    大家好,今天我们来聊git当中一个非常非常重要的特性,就是branch。 git branch可以说是git当 […]...

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

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

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

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

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

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

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

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

  7. Git教程

    1 Git git的概述 Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速的处理从很 […]...

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

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

随机推荐

  1. [转]Android动态破解微信本地数据库(EnMicroMsg.db)

    Android动态破解微信本地数据库(EnMicroMsg.db) 发表于2017/1/5 0:21:20   […]...

  2. 触发器和存储过程

    触发器和存储过程 1.       存储过程和触发器是什么? 存储过程不能可以显著提高系统的执行速度,还能提高 […]...

  3. bs4.BeautifulSoup的基础用法

    导入模块 from bs4 import BeautifulSoup soup = BeautifulSoup […]...

  4. 14.深入k8s:kube-proxy ipvs及其源码分析

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com […]...

  5. 一个妹子对程序员的观察与感受

    对程序员的接触由来已久,本科和研究生的专业都设在信息与软件学院,所以从大一开始,班上的同学都是男多女少。由于专 […]...

  6. Eclipse 闪退/无法启动/一闪而过打解决办法

    解决方法 删除文件:/.metadata/.plugins/org.eclipse.e4.workbench/ […]...

  7. CSAPP-bomblab

    date: 2020-05-04 本实验中博主采用对 objdump -D 令生成的文本进行分析求解(需要有基 […]...

  8. photoshop去除图片上的水印

    很多素材图片上都被加上了各种各样的水印,而我们偏偏非常需要这张图片,又有很多PSer认为水印是无法去除的,只能 […]...

展开目录

目录导航