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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

望穿先生L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值