Git的一些最基础操作-以项目为例

一 git是什么

在自己刚接触git的时候,心里一直有一个疑问,那就是什么是git?git能用来干什么呢?
git是一个分布式的版本控制系统。 那么现在你就知道了,git肯定是用来管理代码版本的,而且还是分布式的。

1.1 分布式

提到分布式,我们就还有一个与之对应的概念不得不提,集中式。集中式就是有一台服务器总管所有的版本库,当你工作的时候,你需要联网才能获取总服务器中的版本,然后工作。在有网络的情况下,这些可能不是什么大问题。

集中式

这个时候你可能就会需要分布式的版本控制系统了。分布式不需要把所有的代码都放在中央服务器里,分布式的核心在于每台电脑里都有一个完整的版本库。那如果两个人要分工协作怎么办呢?其实只要把各自的修改推送给对方,就可以了。但是我们通常不会这么做,通常的做法是,需要一台充当中央服务器的电脑,这台电脑负责交换不同人的修改。
乍看一下,分布式对于集中式来说,优势不大,但当你在没有网络的情况下,同时又需要获取之前某个版本库的代码,那么你该怎么办呢?集中式的版本控制很难完成以上需求,而分布式的处理起来就很方便了。因为本地存储了完整的版本库。

分布式

1.2 版本控制系统

什么是版本控制? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。git版本控制

二 git的一些基本操作

下面我们以一个例子来讲解git的一些基础操作
现在我们要在本地创建一个目录,并把本地目录和github上的目录建立一个连接。
首先我们在本地新建一个文件夹

mkdir myLocalGithub
cd myLocalGithub

图片描述

2.1 初始化代码仓库

首先,我们要在本地初始化一个代码仓库,用来管理本地的代码

 git init

git init: 命令用来初始化一个可以被git管理的仓库
在输入了git init之后会,git会在该文件夹中加入一个隐藏文件夹.git用来管理代码仓库,目录结构如下.git目录结构
之后我们可以在仓库中添加代码或者从远程仓库clone(git clone)代码。现在以在本地添加内容为例。
现在我们在该文件夹下新建一个文件Hello.js。添加一行代码

const Hello = 'Hello World!'
console.warn(Hello)

2.2 添加文件到git仓库

使用git status,我们能够查看git仓库的变化情况,现在我们在控制台输入

git status

控制台显示如下
git status

git仓库告诉我们,现在我们在目录里新添加了一个js文件。现在需要把该文件放进仓库中(这一步很重要,不放进仓库中,git不能做管理)

 git add ./ (./: 把所有更改的部分加入缓存区)
 git commit

git add :把修改添加到暂存区(git仓库中一个概念,我个人理解为临时存储文件的地方)
git commit :把暂存区的文件提交到git仓库中。
通过以上两个步骤,实现了把文件加入git仓库的需求。

添加到仓库

添加完成后,git会提示你哪些地方做了修改。这样就完成了一次提交。

2.3 查看提交记录

使用 git log 来查看提交的历史记录。
git log

2.4 建立远程仓库

通过以上步骤,我们完成了本地git仓库的建立,现在我们要做的是建立本地仓库和远程仓库之间的联系。远程仓库我们这里选择的是github。
下面我们创建了一个叫做myRemoteGithub的远程仓库

github仓库建立

github仓库

2.5 建立本地git仓库和远程git仓库的连接

git remote add origin git@github.com:xiongzixiao/myRemoteGitHub.git

使用git remote add命令添加新的远程仓库
然后使用git remote -v 查看所有的远程仓库remote show
这样,我们就建立了本地git仓库和远程git仓库之间的连接

2.6 提交更改到远程仓库

我们如果想要把本地仓库的修改提交到远程仓库,就需要使用git push指令

git push origin 

第一次推送的话,需要使用

git push --set-upstream origin master(该命令是在push的时候为当前分支指定远程分支)

然后git会要求你先pull远程的代码,以让你的代码和远程仓库同步,如果是第一次pull,可能会报错
git pull出错
这是由于git pull 实际上是执行了git fetch和git merge两个命令,在合并远程分支和本地分支的时候,因为两个分支属于不相关的两个分支,所以git拒绝合并,更多信息可查看git log
如果需要解决这个问题就需要在git pull的时候加上 --allow-unrelated-histories

git pull origin master --allow-unrelated-histories

git pull 成功

git push origin master

然后再push,远程仓库的内容就和你本地仓库的内容一致了。
push结果


一个前端菜鸟!

1k 声望
199 粉丝
0 条评论
推荐阅读
人人都能懂的Vue源码系列—09—initEvents
上篇文章中,我们主要讲了initLiftcycle方法,它的作用是初始化vm实例中和生命周期相关的属性。今天为大家介绍另一个方法——initEvents。从这个方法的名称来看,我们知道它是和事件相关的方法,具体怎么相关,我们...

淼淼真人18阅读 6.4k评论 4

git 常用命令 记录
有错误和改进的地方望留言,谢谢 : )顺便推荐一下,git入门教程Git 教程图解 GitPro Git 2(中文版)Git 使用Git 使用规范流程Git 工作流程Commit message 和 Change log 编写指南全局设置git config --system //...

Luff阅读 3.2k

git/pip/easy_install/apt代理/源设置
在公司内网环境中,访问公网往往需要经过公司的代理,对于浏览器、IDE等开发工具,都提供了设置代理的配置,而git、pip、easy_install等CLI工具,则需要通过命令或配置文件进行代理设置;对于Python、Ubuntu、Mav...

乘着风1阅读 5.5k

低代码开发重要工具:jvs-logic(逻辑引擎)2.1.6版本功能清单
逻辑引擎是一种能够处理逻辑表达式的程序,它能够根据用户输入的表达式计算出表达式的值。在实际应用中,逻辑引擎通常被用于处理规则引擎、决策系统、业务规则配置等领域,具有广泛的应用前景。前面几期我们了解...

软件部长2阅读 432

被吐槽 GitHub仓 库太大,直接 600M 瘦身到 6M,这下舒服了
忙里偷闲学习了点技术写了点demo代码,打算提交到我那 2000Star 的Github仓库上,居然发现有5个Issues,最近的一条日期已经是2022/8/1了,以前我还真没留意过这些,我这人懒得很,本地代码提交成功基本就不管了。

程序员小富2阅读 1.4k评论 1

书写友好的提交信息
其中开头部分表明了本次提交的类型(是添加功能还是修复错误等),范围则描述了修改的影响面,然后是一段简要的描述,更多详细的信息则可以在正文中进行描述。

Kisstar阅读 3k

Coding 官方推出网站服务状态页面啦!
第一部分是系统运行状态。如下图,提示所有系统的运行状态,如 Coding 网站访问状态, Git 服务,QC 服务和 Paas 服务等:第二部分是系统指标。System Metrics 两个图表示的分别是 Coding 官方网站的实时响应时间...

CODING阅读 2.8k

一个前端菜鸟!

1k 声望
199 粉丝
宣传栏