IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git入门 -> 正文阅读

[开发工具]git入门

Git

git是一种分布式版本控制系统。

一、什么是分布式版本控制系统?

分布式版本控制系统(Distributed Version Control System,简称 DVCS)。 在这类系统中,像 GitMercurialBazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

二、git安装

官方版本可以在 Git 官方网站下载。

打开 https://git-scm.com/download/win,然后选择相应的版本即可。

三、git使用

1、创建目录

选择一个合适的地方创建一个空目录

2、初始化仓库

git init

瞬间 Git 就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),同时在当前目录下多了一个.git的目录,这个目录是 Git 来跟踪管理版本库的,如果你没有看到 .git 目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看到了。

3、克隆现有的仓库

git clone <url>

git clone https://gitcode.net/codechina/help-docs

也可以自定义本地仓库的名字

git clone https://gitcode.net/codechina/help-docs mydocs

4、编辑并添加文件

新建readme.txt

第一步,用命令git add告诉 Git,把文件添加到仓库:

git add readme.txt

执行上面的命令,没有任何显示,说明添加成功。

5、提交变动到仓库

第二步,用命令git commit告诉 Git,把文件提交到仓库:

git commit -m "wrote a readme file"

这里简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

也可以一次提交多个文件

git add file1.txt
git add file2.txt file3.txt
git commit -m "add 3 files."

6、查看git仓库当前状态变化

git status命令可以让我们时刻掌握仓库当前的状态

git status

7、比较变动

git diff这个命令查看相较于上一次暂存都修改了些什么内容

git diff readme.txt 

8、修改文件并提交

提交修改提交新文件一样的两步

(1)git add

git add readme.txt

(2)git commit

git commit -m "add distributed"

9、git回退(reset)

假设我们需要将 readme.txt 回退到上一个版本,也就是 wrote a readme file 的这个版本,我们需要怎么操作呢?

首先,Git 必须知道当前版本是哪个版本,在 Git 中,用**HEAD表示当前版本**,也就是最新的提交e55063a上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

git reset

git reset --hard HEAD^

10、git重置(reflog)

假如你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?

当你用git reset --hard HEAD^回退到wrote a readme file版本时,再想恢复到add distributed,就可以通过git reflog命令找到add distributedcommit id

git reflog

git reflog

50ed06b (HEAD -> master) HEAD@{0}: reset: moving to HEAD~
e55063a HEAD@{1}: reset: moving to HEAD
e55063a HEAD@{2}: commit: add distributed
50ed06b (HEAD -> master) HEAD@{3}: commit (initial): wrote a readme file
ESC

从上面的输出可以看到,add distributedcommit ide55063a,现在,我们就可以通过 git reset --hard e55063a切换到最新的版本上了。

11、查看日志

如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

git log --pretty=oneline

git log --pretty=oneline

e55063ad7f97dd979e4f94e12d2bc44a25a0fd55 (HEAD -> master) add distributed
50ed06bd62fd34afbe501e6f2a4af73ccbe187f0 wrote a readme file
(END)

12、工作区和暂存区

Git 和其他版本控制系统如 SVN 的一个不同之处就是有暂存区的概念。

工作区(Working Directory)

就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f7g6n6PH-1656061420135)(https://codechina.csdn.net/CoCo_Code_Op2/course_test_repo/-/raw/70770c9493a21cdacf4e140ab7fe117ee23782a8/static/images/006.png)]

版本库(Repository)

工作区有一个隐藏目录.git,这个不算工作区,而是 Git 的版本库。

Git 的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有 Git 为我们自动创建的第一个分支master,以及指向 master 的一个指针叫HEAD

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xxBwgVWV-1656061420136)(https://codechina.csdn.net/CoCo_Code_Op2/course_test_repo/-/raw/70770c9493a21cdacf4e140ab7fe117ee23782a8/static/images/007.jpeg)]

13、撤消修改(git commit --amend)

有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令来重新提交:

git commit --amend

git commit --amend

14、撤消对文件的修改(git --checkout)

如果你并不想保留对 readme.txt 文件的修改怎么办? 你该如何方便地撤消修改——将它还原成上次提交时的样子(或者刚克隆完的样子,或者刚把它放入工作目录时的样子)

git checkout -- readme.txt

15、删除文件

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:(rm删除的是工作区的文件,也就是你本地的文件)

rm test.txt

Git知道你删除了文件,因此,工作区和版本库就不一致了

如果要从版本库中删除文件

(1)git rm <file>或者git add <file>

(2)git commit -m "remove test.txt"

如果是删错了文件,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:(还原版本库

git checkout -- test.txt
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:35:05  更:2022-10-22 21:36:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:51:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码