zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    freespire.xls导出数据是提示Error in Cell: E10257-Index was outside the bounds of the array."=_=".
    支持多语言Setting up a service which supports multiple languages in web API
    SVN重命名后,不允许提交
    .net framework4.6项目的dll升级后,未找到方法“System.String.GetPathsOfAllDirectoriesAbove”解决
    code first System.Data.Entity.Infrastructure.CommitFailedException: An error was reported while committing a database transaction but it could not be determined whether the transaction succeeded
    mysql中查看ef或efcore生成的sql语句
    错误 NETSDK1007 找不到“E:ProjectMyProjectMyProject.CommonMyProject.Utility.csproj”的项目信息。这可以指示缺少一个项目引用。 MyProject.Data C:Program Filesdotnetsdk2.2.107SdksMicrosoft.NET.Sdk argetsMicrosof
    类中被final修饰的成员变量需要初始化
    方法优化,减少调用时间
    maven mirror
  • 原文地址:https://www.cnblogs.com/littleorange7/p/10567318.html
Copyright © 2011-2022 走看看