git 技术点整理

目录

1.git安装

1.1官网下载

1.2配置

2.git基本概念

2.1本地

2.2远程

2.1.1 代码托管中心是干嘛的呢?

单一团队程序员之间协作

多团队程序员之间协作

 2.1.2 代码托管中心分类

3.git常用操作

3.1向远程提交代码

 3.2不同阶段的代码回退

3.2.1 reset命令:前进或者后退历史版本

hard参数

 mixed参数

soft参数 

 3.2.2 reset使用场景

假如你修改了工作区,并把工作区中的修改 git add 到了暂存区。如果你想撤销工作区和暂存区中的修改。

假如你修改了工作区,并把工作区中的修改 git add 到了暂存区,然后又 git commit 提交到了版本库。

 假如你修改了工作区,并把工作区中的修改 git add 到了暂存区,然后又 git commit 提交到了版本库,并将本地分支的代码推上了云端。

 3.2代码拉取

3.2.1 fork项目

3.2.2 clone项目,并添加远程项目路径

3.2.3查看项目远程仓库配置,如果没有源的地址则新增

3.2.4 添加源项目地址

3.2.5确认是否添加成功

3.2.6 获取源项目的更新

3.2.7 当自己fork的仓库更新时,需要

3.3分支关系和切换

3.4日志

3.5idea 使用git的场景

在IDEA中实战Git_idea如何使用git_大雨将至的博客-CSDN博客


1.git安装

1.1官网下载

Git  

安装详情见https://www.cnblogs.com/liuwenwu9527/p/11688323.html

1.2配置

 

 

 

2.git基本概念

2.1本地

 工作区(Working Directory):就是你在电脑里能看到的目录。说人话就是idea直接能看到的这部分纯代码区域。(不含 .git 目录)

暂存区(stage):从物理位置上看隶属于本地库,是版本库中设立一个暂存区(Stage or Index)。从功能上逻辑来看,是工作去本版本库交互的中间人。工作区文件的提交或者回滚首选都是通过暂存区。

本地仓库,也叫版本库(repository):代码下载下来后隐藏的.git目录,这个目录不属于工作区。即又可以称为版本库。 Git的版本库里存了很多东西,其中最重要的有三个,一个就是称为stage的暂存区,第二个就是Git为我们自动创建的第一个分支master,第三个就是指向master的一个指针叫HEAD。

由此可见,事实上,如果只是个人开发,本地结构已经很够用了,完全能满足代码的提交,回滚,版本控制,等操作。

2.2远程

2.1.1 代码托管中心是干嘛的呢?

我们已经有了本地结构,本地结构可以帮我们进行版本控制,为什么还需要代码托管中心呢?

它的任务是帮我们进行团队协作和跨团队写作开发。

单一团队程序员之间协作

多团队程序员之间协作

 2.1.2 代码托管中心分类

局域网环境下:  可以搭建 GitLab服务器作为代码托管中心,GitLab可以自己去搭建

外网环境下:     可以由GitHub或者Gitee作为代码托管中心,GitHub或者Gitee是现成的托管中心,不用自己去搭建 

3.git常用操作

3.1向远程提交代码

我们将文件往Git版本库里添加的时候,是分两步执行的:

        第一步,代码提交到本地仓

                1.git add 文件,文件从工作区添加到暂存区

                2. git commit -m  文件 ,文件从暂存区提交到本地仓的当前分支上去。(因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在git commit就是往master分支上提交更改。简单来说,就是add的文件全部放到暂存区,然后commit一次性提交暂存区的所有修改)

        第二步,将本地仓库的修改Push到远程仓库

                 git push <远程主机名> <本地分支名>:<远程分支名>   

    

 3.2不同阶段的代码回退

3.2.1 reset命令:前进或者后退历史版本

举例

 hard参数/mixed参数/soft参数

hard参数

说人话就是执行了git reset --hard 某个commit提交的索引后本地的代码也就没了,变成了该索引对应的那个快照的代码。如果本地代码不要了,直接就hard就行。

 mixed参数

 说人话就是,执行git reset --mixed 某次commit的索引后,本地代码还是当前代码,但是暂存区和本地仓(版本库)中已经是该索引对应的快照代码了。

soft参数 

 说人话就是,执行git reset --soft 某次commit的索引后,本地代码还是当前代码,暂存区也是本地代码,只是本地仓(版本库)中已经是该索引对应的快照代码了。

 3.2.2 reset使用场景

假如你修改了工作区,并把工作区中的修改 git add 到了暂存区。如果你想撤销工作区和暂存区中的修改。

git reset --hard head # 简写为 git reset--hard

如果你仅仅只是想要撤销暂存区中的修改。

git reset --mixed # 简写为 git reset

注意,由于没有进入版本库,只是撤回暂存区,所以 hard 后面不用根header~n ,header^ 

假如你修改了工作区,并把工作区中的修改 git add 到了暂存区,然后又 git commit 提交到了版本库。

如果你想回退到上一个版本,可以使用下面的命令。

具体的解决方法有: git reset --hard head^  或  git reset --hard HEAD~1 ,这样本地代新写的代码被重置了,暂存区也回退

注意:

             1如果你回退版本时,采用的是 『 git reset --mixed 版本号 』,--mixed 其实本来就是默认选项。

            那么,你只是更改了 head 的指向和回退了暂存区,而并没有回退工作区。

             2如果你回退版本时,采用的是 『 git reset --soft 版本号 』,

            那么,你只是回退了本地仓的版本号,暂存区和工作区没回退。

而,往往我么回退的场景就是代码提交到本地仓了,发现有问题,

        这个时候,1要去回退,让本地仓不出现有问题代码,2是不想把本地代码清零了,因为要在这个基础上修改。

        所以,一般采用git  reset --soft HEAD "版本号"的方式。为啥不用git reset --mixed 呢,好想也行

 假如你修改了工作区,并把工作区中的修改 git add 到了暂存区,然后又 git commit 提交到了版本库,并将本地分支的代码推上了云端。

如果你想撤销刚push到云端的代码,可以按以下步骤:

1.回退本地分支代码到上个版本 git reset --hard head^

2.将本地分支push到云端进行覆盖  git push origin wlb:master -f  

我在想最好是不是git reset --soft head^    git push origin wlb:master -f ,因为这样既达到效果,又不重置本地代码

另外,可见远程的代码只能覆盖,不能撤回。

 3.2代码拉取

3.2.1 fork项目


在github或gitee页面上, 点击fork按钮, 将B的项目拷贝一份到A自己的代码仓库中.

3.2.2 clone项目,并添加远程项目路径

克隆A自己的代码仓库到本地.

git clone https://github.com/A/A.git


3.2.3查看项目远程仓库配置,如果没有源的地址则新增

git remote -v


3.2.4 添加源项目地址


将B的项目作为最新代码的参考标准(upstream 是上游仓库的别名,别名随意命名)

 git remote add upstream https://github.com/B/B.git


3.2.5确认是否添加成功

git remote -v


3.2.6 获取源项目的更新


git fetch upstream
 git remote add origin https://gitee.com/northeast-big-bared-flower/kd-osysteam.git

git pull

git push -u -f origin master

3.2.7 当自己fork的仓库更新时,需要

git fetch upstream

git merge upstream/master

3.3分支关系和切换

在git中,可利用checkout命令转换分支,该命令的作用就是切换分支或恢复工作树文件,语法为“git checkout 分支名”;当参数设置为“-b”时,可以在新分支创建的同时切换分支,语法为“git checkout -b 分支名”。

git怎样转换分支

checkout最常用的用法莫过于对于工作分支的切换了:

git checkout branchName

该命令会将当前工作分支切换到branchName。另外,可以通过下面的命令在新分支创建的同时切换分支: 

git checkout -b newBranch

 该命令相当于下面这两条命令的执行结果:

1. git branch newBranch

2. git checkout newBranch

首先通过 

$ git branch -a

来查看所在目录的分支 

$ git branch -a

  master

* trunk

  remotes/origin/HEAD -> origin/master

  remotes/origin/master

  remotes/origin/zhanghanlun

然后输入命令切换分支

适用于第一次创建并切换分支

git checkout -b zhanghanlun origin/zhanghanlun

其中远程分支为origin/zhanghanlun

本地分支为zhanghanlun
 

如果已经有本地分支

直接输入命令

git checkout zhanghanlun

切换到本地为zhanghanlun的分支

3.4日志

git log 可以让我们查看提交的,显示从最近到最远的日志 

 当历史记录过多的时候,查看日志的时候,有分页效果,分屏效果,一页展示不下:

 

下一页:空格

上一页: b

到尾页了 ,显示END

退出:q

git reflog

HEAD@{数字} 这个数字的含义:指针回到当前这个历史版本需要走多少步

3.5idea 使用git的场景

在IDEA中实战Git_idea如何使用git_大雨将至的博客-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值