Git入门教程二

8 篇文章 0 订阅
订阅专栏

原文链接:https://www.runoob.com/git/git-basic-operations.html

Git基本操作

Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。本章将对有关创建与提交你的项目快照的命令作介绍。

获取与创建项目命令

git init
用 git init 在目录中创建新的 Git 仓库。 你可以在任何时候、任何目录中这么做,完全是本地化的。
在目录中执行 git init,就可以创建一个 Git 仓库了。比如我们创建 rundo 项目:

$ mkdir rundo
$ cd runoob/
$ git init
Initialized empty Git repository in Initialized empty Git repository in C:/Users/haohuihai/Desktop/git/rundo/.git/
# 在Desktop/git/rundo/.git/ 目录初始化空 Git 仓库完毕。

在这里插入图片描述
git clone
使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。
如果你需要与他人合作一个项目,或者想要复制一个项目,看看代码,你就可以克隆那个项目。 执行命令

 git clone [url]

[url] 为你想要复制的项目地址,就可以了。
例如我们克隆 Github 上的项目:
克隆完成后 当前目录生成一个目录

$ git clone git@gitee.com:haohh/tests.git
Cloning into 'tests'...
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (5/5), done.

在这里插入图片描述
克隆完成后,在当前目录下会生成一个tests目录:

$ cd tests/
$ ls -a
./  ../  .git/  LICENSE  README.en.md  README.md

在这里插入图片描述
上述操作将复制该项目的全部记录

$ ls
config       HEAD    index  logs/     packed-refs
description  hooks/  info/  objects/  refs/

在这里插入图片描述
Git 会按照你提供的 URL 所指示的项目的名称创建你的本地项目目录。 通常就是该 URL 最后一个 / 之后的项目名称。如果你想要一个不一样的名字, 你可以在该命令后加上你想要的名称。

基本快照

Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比
git add
git add 命令可将该文件添加到暂存区

$ touch hhh  // 新建hhh文件
$ touch hao  // 新建hao文件
$ ls    // 查看文件列表
hao  hhh  LICENSE  README.en.md  README.md
$ git status -s    // 查看发生变动的文件
?? hao
?? hhh

git status 命令用于查看项目的当前状态。
接下来我们执行 git add 命令来添加文件:

$ git add hao hhh

现在我们再执行 git status,就可以看到这两个文件已经加上去了。

$ git status -s
A  hao
A  hhh

在这里插入图片描述

?为未添加上去 ,A为以添加上去的
现在我们修改 README 文件:

$ vim README

在 README 添加以下内容:## Runoob Git 测试,然后保存退出。(按Esc,然后输入":wq"命令,保存并推出vim编辑器)
再执行一下 git status:

$ git status -s
A  hao
A  hhh
?? README

保存所有的文件

$ git add .

查看

$ git status -s
A  README
A  hao
A  hhh

在这里插入图片描述
git status
git status 以查看在你上次提交之后是否有修改。
我演示该命令的时候加了 -s 参数,以获得简短的结果输出。如果没加该参数会详细输出内容:

$ git status
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
        new file:   README
        new file:   hao
        new file:   hhh

git diff
执行 git diff 来查看执行 git status 的结果的详细信息。
git diff 命令显示已写入缓存与已修改但尚未写入暂存区的改动的区别
git diff 有两个主要的应用场景。
被修改但未添加进暂存区:git diff
查看已被存放在暂存区的改动: git diff --cached
查看已存在暂存的与未在暂存区的所有改动:git diff HEAD
显示摘要而非整个 diff:git diff --stat

在 hao 文件中输入以下内容:

<?php
echo '尝试';
?>
$ git status -s
A  README
AM hao
A  hhh
$ git diff
diff --git a/hao b/hao
index e69de29..1095ebe 100644
--- a/hao
+++ b/hao
@@ -0,0 +1,3 @@
+<?php
+echo '尝试学习'
+?>

在这里插入图片描述
git status 显示你上次提交更新后的更改者写入暂存区的改动, 而 git diff 一行一行地显示这些改动具体是啥。
接下来我们来查看下 git diff --cached 的执行效果:
在这里插入图片描述
git commit
使用 git add 命令将想要快照的内容写入暂存区, 而执行 git commit 将暂存区内容添加到版本库中。
Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址。

$ git config --global user.name 'haohhh'
$ git config --global user.email test@rundo.com

接下来我们写入缓存,并提交对 hao 的所有改动。在首个例子中,我们使用 -m 选项以在命令行中提供提交注释.

$ git add hao
$ git status -s
A  README
A  hao
$ git commit -m '第一次版本提交'
[master 3ea1336] 第一次版本提交
 3 files changed, 4 insertions(+)
 create mode 100644 README
 create mode 100644 hao
 create mode 100644 hhh

现在我们已经记录了快照。如果我们再执行 git status:

$ git status 
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)
nothing to commit, working tree clean

这里如果使用git status -s,则不会输出任何东西

如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步。命令格式如下:

git commit -a

我们先修改hao 文件为以下内容:

<?php
echo '测试';
echo '测试';
?>

再执行以下命令:

$ git commit -am '修改 hao 文件'
[master 71ee2cb] 修改 hao 文件
 1 file changed, 1 insertion(+)

git reset HEAD

git reset HEAD 命令用于取消已提交到暂存区的内容。
我们先改动文件 README 文件,内容如下

# Runoob Git 测试 
#测试

hao文件修改为:

<?php
echo '测试';
echo '测试';
echo '测试';
?>

现在两个文件修改后,都提交到了暂存区,我们现在要取消其中一个的暂存,操作如下:

$ git status -s
 M README
 M hao
$ git add .
$ git status -s
M  README
M  hao
$ git reset HEAD hao
Unstaged changes after reset:
M       hao
$ git status -s
M  README
 M hao

现在你执行 git commit,只会将 README 文件的改动提交,而 hao 是没有的。

$ git commit -m '修改'
[master a98a86b] 修改
 1 file changed, 1 insertion(+)
$ git status -s
 M hao

可以看到 hao 文件的修改并未提交。
这时我们可以使用以下命令将hao 的修改提交:

$  git commit -am '修改 hao 文件'
[master 5f08cf2] 修改 hao 文件
 1 file changed, 2 insertions(+)
$ git status
On branch master
Your branch is ahead of 'origin/master' by 3 commits.
  (use "git push" to publish your local commits)
nothing to commit, working tree clean

简而言之,执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存。
git rm
如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。
要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。可以用以下命令完成此项工作

git rm <file>

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

git rm -f <file>

如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可

git rm --cached <file>

如我们删除 hao文件:

$ git rm hao 
rm 'hao'
$ ls
hhh  LICENSE  README  README.en.md  README.md

不从工作区中删除文件:

$ git rm --cached README 
rm 'README'
$ ls
hhh  LICENSE  README  README.en.md  README.md

可以递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件:

git rm –r * 

进入某个目录中,执行此语句,会删除该目录下的所有文件和子目录

git mv

git mv 命令用于移动或重命名一个文件、目录、软连接。
我们先把刚移除的 README 添加回来:

$ git add README 

然后对其重名:

$ git mv README  README.md
$ ls
README.md

关于文件内容修改的命令:

vim  <file> 

进入文件编辑界面 按a
开始编辑内容 编辑完成 按Esc(退出),输入:+x或:+wq 按回车
退出编辑
文件内容编辑完成

将node_module添加到忽略文件无效的解决办法

  1. 本地删除 node_modules 包
  2. 将删除的node_modules 包进行 git add,git commit,git push三部曲(这一步的目的是把远程的node_modules 删除,这也是关键一步)
  3. 重新npm install下载 node_modules
Git基础操作
weixin_45661065的博客
09-21 867
创建版本库 版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。 1 创建一个版本库,创建一个空目录: Warning ** 如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。** $ ...
git入门教程
03-20
本篇文章将为初学者提供一个简明的Git入门教程,涵盖了Git与SVN的区别、Git分支与流程、以及一些基础命令的使用。 ### Git与SVN的区别 首先,我们需要了解Git与另一款常用的集中式版本控制系统SVN的主要差异。SVN...
GitGitHub学习--4--初始化创库
晓轩的博客
02-17 6961
初始化仓库 version 2.35.1 作者:晓轩 注意:原创文章未经允许禁止转载!!! 初始化步骤 【1】在本地创建一个文件夹名字随意,最好选空间大的盘符 【2】打开中端Git Bash Here,Git中的命令和Linux的命令是一样的 【3】切换到创建的文件夹下比如路径在G:\Project\GitEntrepot cd G:/Project/GitEntrepot 【4】使用命令将盘符初始化 git init 出现:Initialized empty Git repository in G
git入门
qq_44078824的博客
06-30 1118
git初始化 git安装:https://git-scm.com/ 下载后一路“下一步” 初始化 打开指定文件夹,初始化git C:\Users\Bat>E: E:>cd MyProject E:\MyProject>git init 输出: Initialized empty Git repository in E:/MyProject/.git/ NotePad++编码选用UTF-8 无BOM编码 设置用户信息: 邮箱 git config --global user.name
Git 学习笔记
dreamwhigh的博客
07-13 855
Git 学习笔记 大部分内容转载自:廖雪峰的官方网站—Git 教程 git 安装教程 git 国内镜像下载地址 git 初始配置 选择一个空目录 E:\GitHub\test ,在该目录下右击选择 Git Bash Here 配置用户名和邮箱,使用--global表示所有的项目都会默认使用这里配置的用户信息 $ git config --global user.name "dreamwhig...
Git第一次初始化项目到远程仓库
flytalei的博客
03-15 7447
git init 命令用于创建新的 Git 仓库。git init之后会提示“Initialized empty Git repository in 某个目录”,此时就会在相应的目录下创建一个“.git”文件。官方的解释没看懂,后来在博客上看到有人说**“Permission denied (publickey)的原因:没有将自己的电脑的SSH key添加到对应的git服务器上。复制这个id_rsa.pub中的内容然后粘贴到你的远程仓库里。可以看出已经成功生成了Key,并保存在了C盘下了。
GIT基础教程,适合菜鸟入门
最新发布
08-15
适合初学者入门的Git基础教程
Git入门教程1
08-08
Git入门教程1】 Git是一种分布式版本控制系统,相较于CVS和SVN,它拥有许多显著的优势,这使得酷讯公司选择了Git作为其软件版本管理工具。Git的主要特点包括: 1. **简易初始化**:使用`git init`和`git commit ...
快学Big Data --Git(七)
知识的力量
09-02 478
Git 总结 描述 git是管理项目的一种工具,目前开发人员比较常用的工具,git简单实用,管理项目方便,接下来简单的介绍下git的常用命令Git官网:https://git-scm.com/ Git 使用工具 下载官网:https://www.syntevo.com/smartgit/download/  该工具简单使用,操作方便,是开发人员的必备神器 Git 管理项目模型 R...
git clone 某个链接时候报错Initialized empty Git repository in 不能克隆
热门推荐
qq_37347705的博客
08-30 4万+
查看下是不是git是不是1.7.1版本。 使用 yum -y update 更新一下。 再使用git clone 虽然还是会提示这个报错,但是可以克隆了。亲测有效。 git版本是1.7.1 linux版本是Linux version 2.6.32-504.el6.x86_64 centos ...
Git工具使用第一讲
02-22 292
Git工具使用分支切换 分支切换 查看远程分支 git branch -a 查看本地分支 git branch 切换分支 git checkout -b &lt;分支名称&gt;
Linux搭建git仓库
一朵纯洁的小白花的博客
11-10 3085
环境: cat etc/redhat-release CentOS Linux release 7.8.2003 (Core) 首先检查机器有没有安装yum,命令:yum list 测试下,没有安装先安装yum 安装git #yum install -y git 安装完后,查看 Git 版本 # git --version git version 1.8.3.1 创建git用户 # cd /home #进入/ho...
git使用
chang_nimo的博客
01-24 202
1.创建目录并且初始化 $ mkdir runoob $ cd runoob/ $ git init Initialized empty Git repository in /Users/tianqixin/www/runoob/.git/ # 在 /www/runoob/.git/ 目录初始化空 Git 仓库完毕。 2.查看 ls -a 3.拷贝远程到本地 #查看远...
git clone报错Initialized empty Git repository error:while accessing xxxx fatal: HTTP request failed
yrx0619的专栏
12-18 1万+
系统:CentOS release 6.2 (Final) gitgit version 1.7.1 使用git clone 会提示如下错误。 Initialized empty Git repository error:while accessing https://github.com/org/project.git/info/refs fatal: HTTP request faile...
git操作教程
狂奔的蜗牛
04-23 557
一、Git是什么?        一个分布式版本控制工具,与svn类似,但是功能比之强大,代码管理比较更安全,方便,不过上手难度相比svn要难一点点。代码分别在本地仓库和远程仓库管理。git命令格式可以参考linux命令 、怎么用?       1.本地搭建          ①.安装git          ②.创建本地目录          ③.进入目录,配置用户信息 it
git的初步使用(
gejiangbo222的专栏
07-19 452
Git 安装 Git [root@localhost ~]# git // 查看是否安装 Git 服务 -bash:git:command not found // Git 命令没有找到 [root@localhost ~]# yum install git // 安装 Git 设置账号 [root@localhost ~]# git config --global user.n...
Git用法总结
myWorld001的博客
12-21 361
下载安装 链接 初次使用 安装完成后,还需要最后一步设置,在命令行输入: $ git config --global user.name "Your Name" $ git config --global user.email "email@example.com" 注意git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。 创建版本库 库路径不能有中文! $ mkdir learngit $ c
Git入门教程:从新手到实践
"Git入门特别教程" Git是一种分布式版本控制系统,由Linus Torvalds为Linux内核开发,因其高效和强大的功能而广受欢迎。相对于传统的集中式版本控制系统如CVS和SVN,Git具有以下显著特点: 1. 分布式:每个开发者...
写文章

热门文章

  • vue axios拦截器请求头设置token 跨域,vue.config设置代理 无效的解决办法 7411
  • eNSP模拟器路由无法启动,命令控制界面一直冒 "#"问题的解决方法 7057
  • Git入门教程二 1467
  • SVN使用教程 1371
  • 前端开发应该掌握的浏览器工作原理 720

分类专栏

  • JavaScript面试总结
  • vuex 1篇
  • React 1篇
  • 前端技术 8篇
  • 网络学习
  • Canvas 1篇
  • Ant Design Vue
  • JavaScript 6篇
  • CSS布局 1篇
  • 移动端 1篇
  • SVN 1篇
  • Vue.js 2篇
  • eNSP 1篇
  • web面试 3篇

最新评论

  • JavaScript核心原理之数据类型

    jellicle_c: ~~1E20 / 10; // 166199296 这条我看不懂,有前辈可释义吗?

  • 前端开发应该掌握的浏览器工作原理

    一个爱编程的男孩: 膜拜技术大佬,来我博客指点江山吧

  • eNSP模拟器路由无法启动,命令控制界面一直冒 "#"问题的解决方法

    先森哎: 我的也没用啊

  • 前端开发应该掌握的浏览器工作原理

    小玩家儿: 代码之路任重道远,愿跟博主努力习之。

  • 前端开发应该掌握的浏览器工作原理

    不正经的kimol君: 代码之路任重道远,愿跟博主努力习之。

大家在看

  • Leetcode 每日一题:Diameter of Binary Tree

最新文章

  • vue axios拦截器请求头设置token 跨域,vue.config设置代理 无效的解决办法
  • 简单的了解js中new
  • React扩展
2022年1篇
2021年9篇
2020年7篇
2019年8篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家常熟秋季商场美陈玻璃钢雕塑的生产工艺吉安玻璃钢雕塑定制广东玻璃钢金属雕塑厂家铜仁商场美陈效果图鹤岗玻璃钢雕塑多少钱福建通道商场美陈销售厂家巴南玻璃钢雕塑公司节庆商场美陈市场价兰溪玻璃钢雕塑联系电话商场美陈分为景德镇商场美陈梅州led发光玻璃钢雕塑生产商个性化玻璃钢雕塑厂家工厂定西城市玻璃钢雕塑制作玻璃钢战争雕塑仿真火龙果玻璃钢雕塑奥体百货商场美陈深圳装饰商场美陈安徽玻璃钢雕塑多少钱滁州春节商场美陈玻璃钢雕塑甜瓜图片河南商场美陈生产企业韶关玻璃钢吉祥物卡通雕塑厂家遵义玻璃钢景观雕塑经验丰富商场美陈赚钱吗张掖户外玻璃钢雕塑安装福建开业商场美陈销售厂家浙江园林玻璃钢花盆郑州高新区玻璃钢大熊大雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化