zoukankan      html  css  js  c++  java
  • git结合项目基本使用

     学习博客:1,史上最浅显易懂的Git教程!

                       2,结合项目具体使用

                       3, 常用命令快速查看

                       4,git stash 用法总结和注意点

     一、git的工作原理和工作流程

          

    1. Workspace:工作区
    2. Index / Stage:暂存区
    3. Repository:仓库区(或本地仓库)
    4. Remote:远程仓库

     二、SVN和Git的主要区别?

     (1)SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。

     (2)Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

     三、windos10怎么安装git? 自行百度

     四、如何操作?

        1、创建版本库?

         什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。

         具体操作命令:

    Git基本命令:
    (1)git配置全局用户身份
        git config --global user.name "wexiaowei"
        git config --global user.email "11111@qq.com"
     (2) pwd                                        用来显示当前目录
    (3)git init                                    把这个目录变成git可以管理的仓库
    (4)git add readme.txt                          添加文件到暂存区
    (5)git commit -m 'readme.txt first commit!'    首次提交暂存区文件到仓库
     (6) git diff readme.txt                        查看文件修改提交前后的区别

     2、版本回退?

      如上,我们已经学会了修改文件,我们继续对readme.txt文本进行修改,再增加一行

          (1)除了版本回退,如果版本回退后又想查看最新版本的代码该怎么做呢?

    (7)git log 从最近到最远显示日志
    (8)git log –-pretty=oneline                    将日志用一行显示
    (9)git reset --hard HEAD^                      版本回退到上一个版本
    (10)git reset --hard HEAD^^                    版本回退到上上个版本
    (11)git reset --hard 版本号                     切换到指定的版本号的版本
    (12)git reflog                                 查看各个版本文件的版本号

    、理解工作区和暂存区 的区别?

     (1)工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
                         版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西 。=======  也就是.git目录

     (2) stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

    我们前面说过使用Git提交文件到版本库有两步:

    第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。

    第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。也就是本地仓库

    四、Git撤销修改和删除文件操作

      (1)撤销修改  ---git checkout --readme.txt

         问题1:在我未提交之前,我发现添加5555555555555内容有误,所以我得马上恢复以前的版本,现在我可以有如下几种方法可以做修改?

        第一:如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉。

        第二:我可以按以前的方法直接恢复到上一个版本。使用 git reset --hard HEAD^

     解析:命令 git checkout --readme.txt 意思就是,把readme.txt文件在工作区做的修改全部撤销,这里有2种情况,如下:

    1.readme.txt自动修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。
    2.另外一种是readme.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。
    对于第二种情况,我想我们继续做demo来看下,假如现在我对readme.txt添加一行 内容为6666666666666,我git add 增加到暂存区后,接着添加内容7777777,我想通过撤销命令让其回到暂存区后的状态。如下所示:

     注意:命令git checkout -- readme.txt 中的 -- 很重要,如果没有 -- 的话,那么命令变成创建分支了

    (2)删除文件

      假如我现在版本库testgit目录添加一个文件b.txt,然后提交。如下

      

     如上:一般情况下,可以直接在文件目录中把文件删了,或者使用如上rm命令:rm b.txt ,如果我想彻底从版本库中删掉了此文件的话,可以再执行commit命令 提交掉

       

    问题2:只要没有commit之前,如果我想在版本库中恢复此文件如何操作呢?

    可以使用如下命令 git checkout -- b.txt,如下所示

    文件修改/删除
    (13)git checkout --readme.txt          把readme.txt文件在工作区做的修改全部撤销
    (14)git chechout  分支名                切换分支

    五、远程仓库

     参见博客:远程仓库部分

     

     由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。推送成功后,可以立刻在github页面中看到远程库的内容已经和本地一模一样了,上面的要输入github的用户名和密码;

    从现在起,只要本地作了提交,就可以通过如下命令:

       git push origin master

    把本地master分支的最新修改推送到github上了,现在你就拥有了真正的分布式版本库了。

    远程仓库
    (15)git remote add origin https://github.com/tugenhua0707/testgit.git   本地内容到远程仓库
    (16)git push -u origin master      把本地仓库分支master内容推送到远程
    (17)git push origin master         把本地master分支的最新修改推送到github上
    (18)git clone https://github.com/tugenhua0707/testgit.git    从远程克隆项目到本地

    六、创建和合并分支

      在 版本回填退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。

     (1)创建分支切换分支

        

     (2) 合并分支

     

     (3)删除分支

     

    总结创建与合并分支命令如下:
    
    查看分支:git branch
    
    创建分支:git branch name
    
    切换分支:git checkout name
    
    创建+切换分支:git checkout –b name
    
    合并某分支到当前分支:git merge name
    
    删除分支:git branch –d name

    问题:如何解决冲突?

     3.分支管理策略。

        通常合并分支时,git一般使用”Fast forward”模式,在这种模式下,删除分支后,会丢掉分支信息,现在我们来使用带参数 –no-ff来禁用”Fast forward”模式。首先我们来做demo演示下:

    Java半颗糖
  • 相关阅读:
    各IDE快捷键
    java的GUI之SWT框架 JavaFX框架 配置开发环境(包含但不限于WindowBuilder完整教程,解决Unknown GUI toolkit报错,解决导入SWT包错误)
    20180314 一个浮点数问题
    20180309 算最近新的感悟吧
    20171228 C#值类型和引用类型
    20171129 ASP.NET中使用Skin文件
    20171123初学demo爬去网页资料
    20171018 在小程序页面去获取用户的OpenID
    20171018 微信小程序客户端数据和服务器交互
    20171012 动态爬虫爬取预约挂号有号信息
  • 原文地址:https://www.cnblogs.com/2019wxw/p/12005126.html
Copyright © 2011-2022 走看看