Git的基本使用

Git的基本使用

现在写代码,天天与git打交道,但是对其基本的应用还不是很熟悉,只是在用图形化界面,commit、pull、push等更是不明白底层原理,现在就来梳理一下git的基本用法和底层原理。

Git的底层原理

Git是一个分布式版本控制系统,一听这个可能有点不太明白,什么是分布式版本控制系统?其实结合自己实际使用中的经验可以体会下,我们使用Git的时候,会在本地建立Git仓库,也就是说我们本地已经是一个完整的版本仓库,没有集中的服务器来管理我们的资源,每个电脑的关系可以看下图理解。 Git工作关系图
每个人的电脑上都是一个完整的版本库,工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

Git常用操作

下面通过使用Git常用操作来理解Git的原理

创建Git版本库

git init :把文件目录变成Git可以管理的仓库
​ 例如:在D盘下的D:\workspace\gitdemo目录下运行 git init,就是把这个目录初始化为git仓库

D:\workspace\gitdemo>git init
Initialized empty Git repository in D:/workspace/gitdemo/.git/
创建好后,会在当前目录下多了一个 .git的目录 ,这个目录是Git来跟踪管理版本库的

把文件提交到Git版本库

第一步,用命令git add告诉Git,把文件添加到仓库:
git add 文件名
用add增加的文件,一定位于仓库内

第二步,用==git commit ==把文件提交到仓库:
git commit -m "提交的说明"

版本回退切换

git log 查看提交日志
git log命令显示从最近到最远的提交日志,我们可以看到3次提交,最近的一次是append GPL,上一次是add distributed,最早的一次是wrote a readme file。
如果嫌输出信息太多,看得眼花缭乱的,可以试试加上–pretty=oneline参数:

 git log
      commit 2fab42b5d9942e1ae527006e4a58c9b2fddcfb14 // commit id(版本号)

git reset 回退版本
git reset --hard commit id
知道commit id,我们就可以用git reset 切换文件得版本
版本号没必要写全,前几位就可以了,Git会自动去找
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本

git reset 回退版本
git reset --hard commit id
知道commit id,我们就可以用git reset 切换文件得版本
版本号没必要写全,前几位就可以了,Git会自动去找
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本

工作区与暂存区

  • 工作区

    就是你在电脑里能看到的目录,比如我们新建的gitdemo文件夹目录。

  • 版本库

    工作区有个.git的隐藏目录,这个就是版本库

  • 暂存区

    版本库里有很多东西,其中最重要的称为暂存区(stage或者index)。还有git为我们自动创建的第一个分支master,以及指向master的一个指针HEAD。三者关系见下图。

    git add 把文件添加进去,其实就是把文件修改添加到暂存区。

    git commit 提交更改,其实就是把暂存区的所有内容提交到当前分支

远程仓库

1、添加远程仓库

本地仓库要与远程仓库通信,实现远程同步,以github为例,需要以下步骤:

  1. 在github上新建仓库

  2. 本地仓库与github上的仓库关联

    git remote add origin <github上的仓库地址>
    
  3. 将本地仓库的内容推送到远程仓库

    git push -u origin master
    
    由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
    

    推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:

    • 要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

    • 关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

    • 此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

2、从远程仓库克隆

​ 要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。会克隆到当前目录下面

git clone git@server-name:path/repo-name.git

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值