zoukankan      html  css  js  c++  java
  • Git学习笔记

    Git是目前世界上最先进的分布式版本控制系统,和svn,vss等一样都是进行版本控制的。

    GitHub是一个软件项目的托管平台,相当于自己建立的 svn服务器,vss服务器,GitHub平台可以建立私人仓库和公开仓库,私人仓库需要收费,公开仓库不收费,但大家都可以免费下载(不可以更改)

    接下来就讲解一下如何使用Git与GitHub

    (1)  申请GitHub

    打开网址:https://github.com/,点击signup,注册一个github账号

    (2)下载并安装git

    打开网址:https://git-scm.com/downloads

         

    点击windows,选择适合自己的版本,进行安装。

     

    (3)在某个磁盘下新建一个文件夹作为本地仓库

     

    点击右键 “git bash here”

    配置自己的名称:

    $ git config --global user.name 'test'

    $ git config --global user.email 'test@test.com'

    查询是否配置成功

    $ git config --global user.name

    $ git config --global user.email

     

    (3)在GitHub创建仓库

    打开网址https://github.com/,并进行登录

    点击your repositories,点击new,填写仓库信息,点击create repository

     

     

     

    (4)本地仓库和GitHub对接

    首先创建密钥,上传到github,进行以后的身份验证

    执行命令:$ ssh-keygen -t rsa -C *****@qq.com

    这里的邮箱,必须是github账号的邮箱,根据提示进行输入

    找到密钥存储位置,打开公钥,复制里面的内容

    在github网站把此内容复制到相应窗口:

    个人中心->setting->ssh and gpgkeys->new ssh key->add ssh key

     

     

     

     

     

     

     

    (5)github仓库clone到本地

    执行一下命令:

    $ git clone git@github.com:fengyuzhexing/test.git【自己的git地址】

    输入密码

    可以看到项目已经clone到本地了

     

     

     

     

     

     

    (6)提交到本地仓库

    在此目录下新建一个文件 test.txt,输入内容:testbegin,

    把文件提交到本地仓库

    首先运行pwd命令,看当前所在目录

    切换目录到需要提交的文件目录

    运行命令:

    $ git add 'test.txt'

         $ git commit -m 'testfirst'

    $ git log【查看提交记录】

     

     

    (7)提交到远程仓库

    $ git push origin master

    可以看到github网站已经有新建的文件了

     

    (8)创建分支

    分支概念图

     

    通常情况下,github会有一个默认的主分支 master,这个分支一般都是存放最终发布版本的代码,一般情况下会建立一个新的分支 例如 dev,在这个分支上进行开发维护,最后在发布之前,合并到master分支。

    每一个分支,都是一个独立的版本,拥有自己版本时间线,在不同分支下的操作是相互独立的。

    接下来可以参看一下一个例子

    1. 新建分支 dev,并切换到分支

    $ git checkout -b dev

    $ git branch

    可以看到已经切换到了dev这个分支,此时dev分支的内容和master是一样,相当于是从当前master进行了一份copy

     

    1. 在dev下进行提交

    当前在dev下的任何提交不会影响mater分支,只是在dev分支上进行处理

    编辑test.txt 文件

     

    运行一下命令,提交

    $ git add 'test.txt'

    $ git commit -m 'dev'

    $ git log

      

    1. 切换到master,进行查看

    $ git switch master

    $ git branch

    可以看到已经切换到了master

     

    再打开文件看内容是什么,可以看到这个文件的内容没有变化,还是master分支的数据。

     

    1. 合并dev到master

    $ git merge dev

     

    再次查看 master下的test.txt,可以看到dev数据被合并过来了

     

    删除dev分支

    $ git branch -d dev

     

    4 解决冲突

    冲突出现的原因:

    每个人在本地都有一套自己的源码库,在开发过程中

    A 同学 修改了本地的 test.txt,

     B 同学 也修改了本地的 text.txt

    这时候 A同学 把本地代码 push到 服务器仓库,B同学再想push到服务器仓库,就会出现问题,因为B同学不可以覆盖A同学的更改,所以这时候 B同学就要把代码pull下来就行代码合并,解决完冲突再上传到服务器仓库。

    因为之前的改动都是在本地,所以首先将本地的代码先提交到github,运行以下命令

    $ git push origin master

     

    打开github网站,可以看到本地数据和git服务器数据已经同步

     

     

    1. 模拟A同学修改本地代码

    打开github后台,在线修改test.txt,然后提交

     

     

    输入以下内容:

     

    输入 commit 备注,点击commit changes

     

    此时A同学已经把代码进行了更改,并且提交到服务器

    1. 模拟B同学修改代码

    在本地仓库打开test.txt,输入以下内容:masterB-localchange

     

    在命令行输入 提交命令

    $ git add 'test.txt'

    $ git commit -m 'b-local'

     

    $ git push origin master

    在提交到服务器仓库命令时,出现异常

     

    1. 冲突解决

    首先把服务代码拉取下来

    $ git pull

     

    找到冲突文件,可以看到这里已经合并了文件,但有问题,需要自己手动编辑

     

    编辑后文件

     

    再次运行以下命令重新上传

    $ git add 'test.txt'

    $ git commit -m 'hebing'

    $ git push origin master

    上传成功了

     

    再次打开github网站查看内容,已经同步过去了

     

    (5)版本回退

    回退版本命令:$ git reset --hard 【待回退的comitid】

    有时候可能提交失败了,必须要回退回某一个版本可以运行以下命令:

    $ git log

     

    可以回退到dev当时的版本,运行以下命令

    $ git reset --hard 57554


    可以看到数据已经回退回去了

     

    再运行 git

    $ git reset --hard 8cf6c

    可以看到版本又回来了

    欲带冠冕,必承其重。
  • 相关阅读:
    黄聪:Visual Studio快速封装字段方法
    黄聪:在vs2008中设置jquery智能提示
    黄聪:Linq初级班 Linq to DataSet体验(单表、多表联合查询JOIN语法)
    mysql分区
    为什么使用框架
    阅读杂记(RSA,PDO)
    Golang之继承模拟
    php中$_REQUEST一个注意点
    记录mysql性能查询过程
    知识杂记
  • 原文地址:https://www.cnblogs.com/KQCMSFY/p/12081514.html
Copyright © 2011-2022 走看看