Git

1 概念

Git是分布式版本控制系统,与其它集中式的版本控制系统如SVN不同
首先有几个概念,本地、服务器、中央服务器(远程服务器)。Git每一次commit是提交到本本机的服务器,这个不需要联网,正所谓的版本管理,就是要方便我们知道每一个版本,比如回到之前的某个版本(这是其一),而且回退到某个之前的版本,也是从本机的服务器拿的数据,这些都不需要联网。而 SVN 的每一次 commit 都需要联网,这就需要网络的等待。 Git只有在Push、pull 的时候需要联网,而我们平时更多的操作应是commit。再有就是,断网的情况下,SVN也能工作,但是由于没有版本控制的记录,当多人修改后就比较难以快速的合并,但是Git都在本地保存了版本记录,所以大家合并起来就方便得多了。

2 结构

首先有几个概念:
工作区:就是你在电脑里能看到的目录,项目的位置
版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
远程仓库:远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

大致流程如下:

1) git add把文件添加进去,实际上就是把文件修改添加到暂存区
2) git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

3 常用命令

3.1 提交

$ git status	显示有变更的文件
$ git add readme.txt    添加当前目录的所有文件到暂存区
$ git commit -m "append GPL" 提交暂存区到仓库区
$ git fetch origin master:tmp	在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
$ git push origin master  把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库

3.2 撤销回滚
a. 修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
$ git checkout --  xxx   把文件在工作区的修改全部撤销

b. 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
$ git reset HEAD  xxx  把暂存区的修改撤销掉(unstage),重新放回工作区

4 疑问

4.1 merge与rebase合并方式区别
git rebase过程相比较git merge合并整合得到的结果没有任何区别,但是通过git rebase衍合能产生一个更为整洁的提交历史。
如果观察一个衍合过的分支的历史提交记录,看起来会更清楚:仿佛所有修改都是在一根线上先后完成的,尽管实际上它们原来是同时并行发生的。

4.2 pull与fetch拉取代码区别
git fetch 相当于是从远程获取最新到本地,不会自动merge
git pull:相当于是从远程获取最新版本并merge到本地

5 Git在idea中的使用

在idea中使用.gitignore插件忽略某些提交文件

简单过程:

1) 下载插件  File-Settings-Plugins-下载.ignore

2) 在下面中新建.gitignore文件,直接输入想过滤的文件名

Git在idea中代码提交,大致流程如下:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值