Git教程使用系列(一):认识工作区,暂存区,本地仓库,远程仓库

工作区、暂存区、本地仓库、远程仓库

1.   概念

工作区:工作区就是你克隆项目到本地后,项目所在的文件夹目录。

暂存区:用于存储工作区中添加上来的变更(新增、修改、删除)的文件的地方。操作时,使用git add .会将本地所有新增、变更、删除过的文件的情况存入暂存区中。

本地仓库:用于存储本地工作区和暂存区提交上来的变更(新增、修改、删除)过的文件的地方。操作时,使用git commit –m “本次操作描述” 可以将添加到暂存区的修改的文件提交到本地仓库中。

远程仓库:简单来说,就是我们工作过程中,当某一个人的开发工作完毕时,需要将自己开发的功能合并到主项目中去,但因为功能是多人开发,如果不能妥善保管好主项目中存储的代码及文件的话,将会存在丢失等情况出现,所以不能将主项目放到某一个人的本地电脑上,这时就需要有一个地方存储主项目,这个地方就是我们搭建在服务器上的git远程仓库,也就是在功能开始开发前,每个人要下载项目到本地的地方。操作时,使用git push origin 分支名称,将本次仓库存储的当前分支的修改推送至远程仓库中的对应分支中。

2.   工作区、暂存区、本地仓库、远程仓库的关系:

如下的操作,向分支dev-yh-1.0.0添加文件print.txt  

执行 git add . 命令把新文件提交到暂存区,然后提交该文件:

[root@centosnode01 hongDemo]# git  commit  -m  '添加新文件'

*** 请告诉我你是谁。

运行

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

来设置您账号的缺省身份标识。
如果仅在本仓库设置身份标识,则省略 --global 参数。
fatal: 无法自动探测邮件地址(得到 'root@centosnode01.(none)')
错误解决方案:

 [root@centosnode01 hongDemo]# git config --global user.email "hongyang@163.com"
 [root@centosnode01 hongDemo]# git config --global user.name "yanghong001"

执行下面的命令把文件print.txt文件添加到本地仓库中
 [root@centosnode01 hongDemo]# git commit -m "添加新文件"
 [dev-yh-1.0.0 51b01e9] 添加新文件
 1 file changed, 3 insertions(+)
  create mode 100644 print.txt

把print.txt推送到远程的dev-yh-1.0.0

[root@centosnode01 hongDemo]# git push origin dev-yh-1.0.0
Username for 'https://github.com': hongyangzpark@163.com
Password for 'https://hongyangzpark@163.com@github.com': 
枚举对象: 4, 完成.
对象计数中: 100% (4/4), 完成.
使用 4 个线程进行压缩
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 321 字节 | 321.00 KiB/s, 完成.
总共 3 (差异 0),复用 0 (差异 0)
To https://github.com/honghongyang/hongDemo.git
   3574b8a..51b01e9  dev-yh-1.0.0 -> dev-yh-1.0.0

 

登录远程仓库中的该分支dev-yh-1.0.0已经包括该print.txt文件

此时的master分支无print.txt文件

 

从上图可以看到,我们如果想将在本地工作区中修改,推送到远程仓库的话,需要将工作区的修改的内容,添加到暂存区,再将暂存区的内容提交到本地仓库,最终将本地仓库的内容推送至远程仓库,才能达到最终想要将本地修改推送到远程仓库的目的。

分支

1.   首先,我们要明确一个概念,什么是分支?

简单来说,就是我们工作过程中,要开发一个系统,这个系统会由若干个功能组成,我们将若干个功能交由多个人进行开发。每个人在开发之前,都会将项目从远程仓库下载到本地,然后才能在本地进行对应功能的代码编写。

此时,每个人就可以看作是一个分支。

每个人在其分支中进行着功能开发,最终开发完毕后,需要将开发的功能代码推送到远程仓库进行代码合并,远程仓库中才能有我们开发的功能。

2.   如何使用

在本地仓库中,可以创建多个分支,在多个分支中进行不同的功能开发,来满足业务需求。

在开发完功能后,为了保证本地仓库推送到远程仓库的功能代码,不会出现将其他人开发的功能代码覆盖的情况,需要在每次使用git push origin 分支名称 命令将当前分支中,在本地仓库改动推送到远程仓库之前,需要先将远程仓库的主干分支master的最新代码拉取到本地当前分支的本地仓库中,再进行推送操作,从而保证最终推送本地仓库代码到远程仓库时,推送的代码是完整的(即包含其他人提交的功能的)。

注意:开发过程中,必须创建自己分支进行功能开发,不允许直接在master分支中进行功能开发、修改、删除等操作。以免误操作或操作出错等情况出现,污染了远程仓库的主干分支master,导致功能代码无法继续使用,也会影响到其他人的使用

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值