Git的简单使用以及Git工作区域

给Git下个定义

Git是分布式代码版本控制系统,DVCS(distributed version controll system),代码版本控制比较好理解,通过代码历史、代码分支避免代码丢失,那么分布式如何来理解呢?
我是这么认为的,Git的分布式是通过当前项目下代码的各个贡献者都在本地保留代码,代码贡献者之间可以同时进行代码贡献而不互相影响,当然,可能会出现代码提交造成冲突,Git也提供了解决冲突的方案,学会使用Git能让我们管理多人项目变得更加轻松。

从Git的使用着手

通常我们要使用Git要么是从已有的远程仓库拉取代码开始,或者是自己搭建一个Git项目,这里我会演示这两种方式。

  1. 从已有远程仓库拉取代码到本地
    1. 使用git clone <url> 直接将代码克隆到本地
  2. 自己搭建Git项目
    1. 首先在Github上创建一个项目(最好不要在创建项目的同时README .md,在本地push代码时可能会造成冲突而无法进行上传,需要使用别的方式才能上传)
    2. 本机新建一个代码空间,git init生成git working directory
    3. 使用git remote add <origin> <url>将本地和远程关联起来
    4. 将自己本地代码推送到远程

有了Git管理的代码空间,那就来了解下git bash下的一些实用命令吧。
git add:git add这个命令是将working tree即本地代码目录的改变(新增文件或者修改文件)推到stage area(暂存区),现阶段,你只需要认为使用了这个命令,会将你对代码的改变暂时保存在一个文件里面即可
git commit:git commit的使用一般要加上-m ‘你对修改做出的解释’,当使用完这个命令后,你本地working tree的改变就推送到git working tree即git的工作目录了。
git push:将本地git working tree的改变推送到建立联系的远程代码仓库。
git pull:远程代码仓库的更新拉到本机git working tree并将更新同时同步到stage area和working tree。
git status:查看woking tree的更新代码等情况。
git checkout:git checkout有两个功能,

  1. 切换分支:git checkout -b new_branch_name
  2. 撤销修改:当你对某个代码文件进行了修改,想要进行回退,可以直接使用git checkout来回退

git log:查看当前分支下git 的更改记录。
git rm:使用git rm会删除working tree和stage area的代码,当commit后git wroking tree的代码也会被删除,当我们想要删除git working tree的而不删除working tree的代码,可以联合–cached,加上这个指令的意思是只删除index文件的更改而不删除working tree的。
git merge:合并两个分支的内容,假设当前有master和dev两个分支,我们切换到dev分支进行了开发,想要把开发的内容合并到master,有如下几步,

  1. git checkout master
  2. git merge dev
  3. 如果有代码冲突的情况,需要解决冲突

git merge操作的log能够通过git log --graph看出来,merge能看出合并的轨迹。
git rebase:git rebase同样可以合并两个分支的代码,rebase的含义是垫基,与merge不同的是,两个分支合并后看不出来有分支合并过的轨迹,

  1. git checkout dev
  2. git rebase master(master的改变需要在dev分支上重现,rebase的含义就是这么来的)
  3. git checkout master
  4. git merge dev(将dev改变内容合并到master)

git fetch:将远程代码的更改拉取出现显示,并不会改变本地代码。

.git目录有什么东西

.git目录

  1. HEAD文件为当前使用命令指向的本地分支,一般形式是ref: refs/heads/master,当切换分支为dev时,HEAD文件内容会变为ref: refs/heads/dev
  2. index文件就是stage area(暂存区),对stage area的修改commit后代码的改变会保存到objects目录下
  3. config文件是本项目git的配置文件(还有一个全局配置文件在本机用户目录下)
  4. logs目录存放的是每次commit的历史,可以通过git reset <HEAD> 回滚代码版本,这里的HEAD就是每次commit生成的40位16进制数
  5. refs目录下存放了实际要指向的分支

Git的工作区域

Git工作区域
如上图,学习使用Git,我们需要掌握Git的三个工作区域,本地代码空间、暂存区(index)、Git代码提交后的区域(objects),当切换到另一个分支,index、objects目录下的内容对应的也会切换,之后做出的改变都是在另一个分支了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值