Git

54 阅读9分钟

Git

1.Git概述

1.Git概念:Git是一个分布式版本控制(工具),主要用于管理开发过程中的“ 源代码文件”(java类、xml文件、html文件等);


2.Git:
  a:代码回溯
  b:版本切换
  c:多人协作
  d:远程备份
      
3.Git:分为两种:
      (1)本地仓库:开发人员自己电脑上的Git仓库
       (2)远程仓库:远程服务器上的Git仓库
     //分布式:体现在有两种仓库是分开的;
4.Git相关动作:
          
          

2.Git代码托管服务:

(1)常用的Git代码托管服务:

(1):
Git有:"本地仓库""远程仓库"
      "远程仓库" 需要借助 代码托管服务来实现:(eg://在码云上创建远程仓库)
    
//代码托管服务:
githup
码云
gitLab
BitBucket
    
//这里我们使用码云作为代码托管服务来创建远程仓库;
    

(2) 使用码云代码托管服务:

1:使用码云的操作流程如下:
   a:注册码云账号
   b:登录码云
   c:创建远程仓库
   d:邀请其它用户成为仓库成员; 
   
   
/*
每一个远程仓库都有一个唯一网络地址;
可以创建多个远程仓库;
邀请其它用户称为仓库成员;

3.Git常用命令:

(1)常用命令1:

在Git命令行中执行:
  1:设置用户信息:
    a:
    设置用户信名称
    git config --global user.name "用户名";
      eg:.... "itcast"
    b:
    设置用户邮箱地址
    git config --global user.email "email地址"
      eg: ... "hello@itclast.cn"
  
  2.查看配置信息:
     git config --list
     
  3.获取git仓库:
          要使用git对我们的代码进行版本控制,首先需要获得Git仓库;
          
     (1)在本地初始化一个Git仓库(//不常用)
          a:在任意一个目录下创建一个空目录(eg:repo1)作为我们的本地Git仓库
          b:进入这个目录中,点击右键打开Git bash窗口
          c:执行命令 git init
     (2)从远程仓库中克隆(//常用) :从已有的远程仓库,将远程仓库克隆过来:这样就获得了本地git仓库!!!
          步骤:
              git clone [远程仓库地址]
              //注意:在使用git命令时要注意是在哪层目录下执行的命令;
         
     //git init :本地仓库初始化;
  4.Git常用概念!!!:
         (1)版本库:.git就是版本库://里面存储了许多配置信息、日志信息和文件版本信息;
         (2)工作区:包含.git文件夹的目录就是工作区://主要存放开发的代码;
         (3)暂存区/index/stage:.git文件夹中的index文件就是暂存区,也叫stage;://临时保存修改文件的地方;
         
    //注意:三者关系:工作区 git add * 到暂存区 git commit 到版本库;!!!!
         
  5.Git工作区中文件状态:
         Git工作区中的文件有两种状态:
          (1):untracked:未跟踪状态(未被纳入版本控制  //一般是新创建的文件:还没有执行 git add命令之前!!!!)
          (2):tracked:已跟踪(被纳入版本控制   //执行完 git add:就变成 "已跟踪"了):  ---->即将其纳入git管理!!!
                a:Unmodified:未修改状态
                b:Modified:已修改状态 
                c:Staged:已暂存状态
         
          //注意:这些文件状态会随着我们执行Git的命令发生变化;
          /*
          红色:代表将文件修改了,但是还没有放到暂存区(即还没有执行add)
          绿色:放到暂存区
          */
         
   

(2)Git本地仓库操作命令:!!!


git status :查看文件状态

git add:将文件的修改加入"暂存区"
        eg: git add user.xml:将user.xml加到"暂存区";

git reset: 1:将暂存区的文件取消暂存   eg: git reset user.xml: 将user.xml从暂存区中取消;
           2:或者是切换到指定版本;    eg: git reset --hard 固定参数+字符串;
                切换指定版本进行穿越!
git commit!!!:将暂存区的文件修改提交到版本库
   eg:git commit -m "...(mesage提示信息)" hello.txt :将hello.txt提交到"版本库";

git log:查看日志; //可以查看到:操作过程、message提示信息、用户信息等
    

(3)Git远程仓库操作的命令:

对远程仓库进行操作:

git remote:查看远程仓库 
    git remote -v:查看远程仓库详细信息;

git remote add:添加远程仓库
    //语法:git remote add origin 远程仓库地址;(即两者之间建立关系)
    先创建一个本地仓库 和 在码云上创建一个远程仓库,然后通过命令 给本地仓库和远程仓库建立了联系; //-->之后他们之间就可以进行通信:把本地的代码推送到远程,把远程的代码推送到本地;
     

get clone +远程仓库地址:从远程仓库克隆;(即将远程仓库复制一份,复制到本地)

get pull:把本地的一些文件推送到远程
    :git pull origin 分支:表示从哪个分支拉取;
    //使用背景:多人协作
     

get push:将本地仓库的文件推送到远程仓库;
    git push origgin  master

 //注意:git add:加入暂存区; --> git commit:加入本地仓库; -->: git push origin master(分支);
//注意:无论是本地仓库还是远程仓库,文件修改之后:都要先添加到暂存区;


(4)Git分支操作:!!!!!!!!!!!

同一个仓库可以有多个分支:多个分支之间相互独立,互补影响;
通过 "git init "命令 创建本地仓库时 默认会创建一个"master主分支";


"Git 分支相关命令":
    (1) git branch:查看分支
             git branch:查看本地所有分支
             git branch -r :列出所有远程分支
             git branch -a:列出所有本地分支和远程分支;

    (2)git branch +名称:表示创建一个新的(本地)分支
    
    (3)git checkout +分支名称:切换到指定分支
         eg:git checkout b1:切换到b1分支;
    
    (4)git push  origin(远程仓库别名)  分支名称a :将本地仓库的 分支 推送到远程仓库!!
            第一步:先进入具体的分支: git checkout b1
            第二步:将b1分支推送到远程仓库中
    
    (5)git merge:合并分支;
          eg:将b1,b2合并到master分支下:
              
              第一步:先进入master分支:git checkout master  //!!!!
              第二步: 将b1、b2 分支下的内容合并到当前分支下
              -->:git merge b1
                  git merge b2

              
      //注意:操作时要注意此时处在哪个分支下!!!!!!!!












(5)Git分支操作(分支合并时冲突解决)

eg:b1分支下有b1.txt,而master分支合并了b1分支;
之后master分支下有master.txt 和 b1.txt 文件;
/*
我们先切换到master分支下修改b1.txt 并提交到远程仓库,而后,我们修改b1分支下的b1.txt,并提交到远程仓库;
--》之后我们想要进行文件master和b1分支内容合并时:就会失败; (两个分支都对同一个文件进行修改时,再次合并就会出现乱码)
*/
      git checkout master
      git merge  b1;

 ----->:如何解决呢:因为将b1分支的内容(b1.txt)合并到master分支下之后:当我们在查看mstaer分支下的b1.txt时:处理分别有b1分支下b1.txt的内容和 master分支下b1.txt的内容之外,还有一些乱码:
      1.我们可以手动删除那些乱码
      2.之后:使用git add b1.txt:代表告诉b1.txt已经合并好了
      3.然后之间提交到远程仓库即可:git commit -m "" b1.txt
//注意:如果碰到:报:fatal cannot do a partial commit during a merge; 时:之间在其后面 追加 “-i”即可运行成功!!!!

(6)Git标签操作命令:

Git中的标签,指定是 某个分支某个特定时间点的状态。
    
(1)git tag :列出已有的标签
(2)git tag+标签名称:创建标签
(3)git push origin +标签名称:将标签推送到远程仓库
(4)git checkout -b [要创建的分支名称][标签名称]  :检出标签:即将当时标签的状态下载下来; -->//检出标签时需要创建一个新的分支指向某个标签;
 
    //标签是一个静态的:一旦标签打完了,文件夹中相应文件的状态就定好了(eg:当前标签对应的时间下有哪些文件,另一个标签对应的时间下有哪些文件)
    //分支:可以一直变化;
    //标签就相当于以一种方式来保存历史版本!!!

4.IDEA中使用Git:

(1)

在IDEA中使用Git"获取获取仓库"有两种方式:
 1.本地初始化仓库
    工具--Vsc--创建git仓库 
 2.从远程仓库克隆 (//!!!)
    工具--Vsc--克隆:输入远程仓库地址
    
    
 创建git仓库之后:有一个 ".gitignore文件"//是用来告诉git,当前仓库的哪些文件不需要管理;
  //我们可以在码云上创建仓库时:勾选初始化:并在.gitihnore:选择java即可

(2)IDEA--使用Git进行本地仓库操作:

1.加入暂存区的情况:
  //添加新的文件时; 对已有文件进行修改的时候,都需要加入暂存区;
    
    
将文件加入暂存区:在创建时会提示:add  / 或者:右击文件->Git->添加(add)
    
2:将暂存区文件提交到版本库(即交给Git管理): 
      //选中想要提交的文件--上方工具栏--Git--对勾:代表提交
       // !!!---:且“√”:代表加到暂存区 + 提交到版本库; 
    
3.查看日志:
    工具栏--Git--日志;

(3)IDEA--远程仓库操作

(1)查看远程仓库
     选中文件--右击-git-管理远程:即可查看/添加远程仓库;
(2)添加远程仓库
     //一个本地仓库可以对应多个远程仓库
    //方法同上:写好远程仓库的name、地址即可;
(3)推送至远程仓库!!!!!!
     右击-git-推送
    /////!!!!!!!:在提交到本地仓库的同时 也推送到远程仓库:直接点工具栏-git-√-commit下三角(选择commit and push)
(4)从远程仓库拉取!!!!!
    使用背景:当远程仓库中有新的代码时:
   ////!!!!!!!!:工具栏--git--斜向下箭头

(4)IDEA--分支操作:

(1)查看分支:
    右击--git-分支
    //或者左下角Git视图点开
(2)创建分支
   //左下角Git视图点开 --点 ”+“
(3)切换分支
    //左下角Git视图点开--直接双击对应分支即可
   
(4)将本地创建的分支推送到远程仓库
    //左下角Git视图点开--选中相应的分支--右击--推送
(5)合并分支