【教程搬运】廖雪峰Git的使用教程(一)

0 Git简介

https://www.liaoxuefeng.com/wiki/896043488029600/896067008724000

0.1 Git的诞生

https://www.liaoxuefeng.com/wiki/896043488029600/896202815778784

0.2 分布式和集中式

https://www.liaoxuefeng.com/wiki/896043488029600/896202780297248

1 安装Git

https://www.liaoxuefeng.com/wiki/896043488029600/896067074338496

2 创建版本库、添加文件到版本库

https://www.liaoxuefeng.com/wiki/896043488029600/896827951938304
图1:创建版本库示例
*一个常见的报错和解决方案
图0:一个常见的错误
由于.git文件夹可能处于隐藏状态,我们必须让VSCode显示隐藏文件,方法可以参见这个链接:https://blog.csdn.net/weixin_44489823/article/details/112728283

回到正题:

#将文件从工作区提交到暂存区
git add readme.txt
#将文件从暂存区提交到版本库
git commit -m <message>

3 时光穿梭机

3.1 查看文件和版本库状态

https://www.liaoxuefeng.com/wiki/896043488029600/896954074659008
图2:查看版本库状态

#查看文件和版本库的状态
git status

3.2 回退或前进到任意版本

https://www.liaoxuefeng.com/wiki/896043488029600/897013573512192
图3:前进或后退到任意的版本
Git必须知道当前版本是哪个版本,第一种索引办法是使用版本号;第二种是使用相对版本位置,在Git中,用HEAD表示当前版本,当前版本的上一个版本是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

#切换到指定的版本,其中HEAD为当前版本,当前版本的上一个版本是`HEAD^`
#上上一个版本就是`HEAD^^`,当然往上100个版本写成`HEAD~100`
git reset --hard <命令索引>
#查看提交历史,获取命令索引
git log
#查看命令历史,获取命令索引
git reflog

3.3 工作区和暂存区

https://www.liaoxuefeng.com/wiki/896043488029600/897271968352576

回顾:
查看某个版本和之前版本的差异,可以使用git diff readme.txt这个命令。用git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别。其中,readme.txt应该被替换为您的文件名。

#查看某个版本和之前版本的差异
git diff readme.txt
#查看工作区和版本库里面最新版本的区别
git diff HEAD -- readme.txt

3.4 管理修改

https://www.liaoxuefeng.com/wiki/896043488029600/897884457270432

3.5 撤销修改

https://www.liaoxuefeng.com/wiki/896043488029600/897889638509536

这一节和版本回退最大的区别就在于,版本回退指的是“在工作区做了修改,并且已经加入到暂存区,并且还提交到了版本库”,而撤销修改指的是“在工作区做了修改,但没有加入到暂存区,或者在工作区进行了修改且已加入暂存区,但没有推送到版本库当中”。
图4:撤销修改
针对上述场景一的解决方案

git checkout -- readme.txt

针对上述场景二的解决方案

#这一行命令是把暂存区的文件修改回之前的版本(工作区的版本还没动)
git reset HEAD readme.txt
#这一行命令是把工作区的文件修改回之前的版本
git checkout -- readme.txt

3.6 删除文件

https://www.liaoxuefeng.com/wiki/896043488029600/900002180232448

图5:删除文件

#在工作区移除一个文件
git rm test.txt
#提交至版本库
git commit -m "remove test.txt"

如果仅完成了第一步,就发现自己误删了,那正好利用git checkout -- test.txt,因为可以把版本库里的文件调出来,这样就能防止误删。不过,这样做的缺点是:可能会损失最后一次提交之后修改的内容。

4 远程仓库

https://www.liaoxuefeng.com/wiki/896043488029600/896954117292416

这部分主要教我们如何创建github账户,然后把本地账户与github关联起来。我们有必要理清工作区、暂存区、本地仓库、远程仓库之间的关系以及它们之间互相转换的命令。
图6:工作区、暂存区、仓库区示意图

4.1 添加远程库

https://www.liaoxuefeng.com/wiki/896043488029600/898732864121440

第一步:在github上创建一个仓库(见上述链接)

第二步:将本地仓库与远程仓库进行关联(当然前提是你本地得先建好一个仓库才行,参见第2部分)

命令:

#注意,此处应当更换为自己项目仓库的地址
git remote add origin https://github.com/LZX-ZNRA/learngit.git

第三步
将某个分支(例如:master)推送到远程版本库(例如:origin)

#origin和master都是可以更改的参数
git push -u origin master

**-u参数的作用:**由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

#简化后的代码
git push origin master

值得一提的是,这一步可能最初会遇到一些问题,那就是报错(超时),此时需要VSCode和github进行一个授权,授权结束后自然就可以联网。授权成功的画面在这里:
图7:授权成功
如果要删除远程库,那么首先应查看远程库的情况:

git remote -v

而清除远程库的动作是这样的:

git remote rm origin

图8:添加到远程库

4.2 从远程库克隆

#从远程仓库往下克隆东西(后面换成自己要克隆的ssh协议地址)
git clone git@github.com:junyanz/pytorch-CycleGAN-and-pix2pix.git

图9:克隆仓库
鲤鱼王小蓝说:

好了,今天就写到这里了,明天我们继续学习git的分支结构。书签在这:

https://www.liaoxuefeng.com/wiki/896043488029600/896954848507552

另外推荐一个不错的git教程。

https://www.cnblogs.com/xulinjun/p/12434778.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鲤鱼王的成长之路

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

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

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

打赏作者

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

抵扣说明:

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

余额充值