速成git

目录

Git简介

Git安装

Git与svu的区别

Git工作流程

核心概念

创建仓库

基本命令

分支

合并冲突


Git简介

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

    Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,


Git安装

      git官网按照对应系统进行安装。网址: 官网git-scm.com    gitforwindows.org。一直点next 最后finish就OK了。


Git与svu的区别

      svu是集中式版本控制系统。版本库集中放在中央服务器,在自己电脑联网时可以使用。获取最新版本后推送给中央服务器。

      git是分布式版本控制系统。没有中央服务器,自己的电脑是个版本库,不需要联网,版本在自己的电脑上只需要他推送修改内容给对方。对方就可以查看了,反过来也是如此。


Git工作流程

  1. 从远程仓库中克隆 git clone)Git 资源作为本地仓库;
  2. 从本地仓库中checkout代码然后进行代码修改;
  3. 在提交本地仓库前先将代码提交到暂存区(git add .);
  4. 提交修改(git commit),提交到本地仓库;本地仓库中保存修改的各个历史版本;
  5. 在需要和团队成员共享代码时,可以将修改代码推(git push)到远程仓库。

核心概念

  三个区两个仓库

     orkspace: 工作区,平时存放项目代码的地方。

     ndex / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

     Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

     Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

      常用命令 :git clone(克隆)git push(上传远程代码并合并git add (添加文件到暂存区)、git commit(提交暂存区到本地仓库。git checkout(切换分支)git pull(下载远程代码并合并)


创建仓库

     1.  git init      选择或创建一个文件夹  初始化  git init   生成一个.git (git仓库)

     2.  git init newrepo     文件newrepo里面出现.git ,Git 需要的数据和资源都存放在这个目录中

     3.



基本命令


分支

     Git 分支实际上是指向更改快照的指针。分支意味着从开发主线上分离开来,不影响主线的同时继续工作

  • 查看分支       git branch
  • 创建分支       git branch XXX
  • 切换分支        gie checkout XXX
  • 推送至远程仓库分支 git push XXX
  • 合并分支        gie merge XXX
  • 删除分支         gie branch -d  XXX 

合并冲突

     1.合并本地后,与远程仓库合并。

        $ git branch
        * master
        $ cat runoob.php

     2.创建名字为 change_site 的分支,切换过去,我们将 runoob.php 内容改为:

        <?php
        echo 'runoob';
        ?>

     3.创建分支change_site,将修改内容添加到分支。

      $ git checkout -b change_site
      Switched to a new branch 'change_site'
      $ vim runoob.php
      $ head -3 runoob.php
      <?php
      echo 'runoob';
      ?>
      $ git commit -am 'changed the runoob.php'
      [change_site 7774248] changed the runoob.php
      1 file changed, 3 insertions(+)

      4.将修改的内容提交到 change_site 分支中。 现在,假如切换回 master 分支我们可以看内容恢复到我们修改前的(空文件,没有代码),我们再次修改 runoob.php 文件。

      $ git checkout master
      Switched to branch 'master'
      $ cat runoob.php
      $ vim runoob.php    # 修改内容如下
      $ cat runoob.php
      <?php
      echo 1;
      ?>
      $ git diff
      diff --git a/runoob.php b/runoob.php
      index e69de29..ac60739 100644
      --- a/runoob.php
      +++ b/runoob.php
      @@ -0,0 +1,3 @@
      +<?php
      +echo 1;
      +?>
      $ git commit -am '修改代码'
      [master c68142b] 修改代码
      1 file changed, 3 insertions(+)

   5..现在这些改变已经记录到我的 "master" 分支了。接下来我们将 "change_site" 分支合并过来。

      $ git merge change_site
      Auto-merging runoob.php
      CONFLICT (content): Merge conflict in runoob.php
      Automatic merge failed; fix conflicts and then commit the result.

      $ cat runoob.php     # 打开文件,看到冲突内容
      <?php
      <<<<<< HEAD
      echo 1;
      =======
      echo 'runoob';
      >>>>>>> change_site
      ?>

   6.我们将前一个分支合并到 master 分支,一个合并冲突就出现了,接下来我们需要手动去修改它。

      $ vim runoob.php 
      $ cat runoob.php
      <?php
      echo 1;
      echo 'runoob';
      ?>
      $ git diff
      diff --cc runoob.php
      index ac60739,b63d7d7..0000000
      --- a/runoob.php
      +++ b/runoob.php
      @@@ -1,3 -1,3 +1,4 @@@
      <?php
      +echo 1;
      + echo 'runoob';
      ?>

  7.在 Git 中,我们可以用 git add 要告诉 Git 文件冲突已经解决

      $ git status -s
      UU runoob.php
      $ git add runoob.php
      $ git status -s
      M  runoob.php
      $ git commit
      [master 88afe0e] Merge branch 'change_site'

   8.成功解决,并提交结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值