廖雪峰的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
*一个常见的报错和解决方案
由于.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
#查看文件和版本库的状态
git status
3.2 回退或前进到任意版本
https://www.liaoxuefeng.com/wiki/896043488029600/897013573512192
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
这一节和版本回退最大的区别就在于,版本回退指的是“在工作区做了修改,并且已经加入到暂存区,并且还提交到了版本库”,而撤销修改指的是“在工作区做了修改,但没有加入到暂存区,或者在工作区进行了修改且已加入暂存区,但没有推送到版本库当中”。
针对上述场景一的解决方案
git checkout -- readme.txt
针对上述场景二的解决方案
#这一行命令是把暂存区的文件修改回之前的版本(工作区的版本还没动)
git reset HEAD readme.txt
#这一行命令是把工作区的文件修改回之前的版本
git checkout -- readme.txt
3.6 删除文件
https://www.liaoxuefeng.com/wiki/896043488029600/900002180232448
#在工作区移除一个文件
git rm test.txt
#提交至版本库
git commit -m "remove test.txt"
如果仅完成了第一步,就发现自己误删了,那正好利用git checkout -- test.txt
,因为可以把版本库里的文件调出来,这样就能防止误删。不过,这样做的缺点是:可能会损失最后一次提交之后修改的内容。
4 远程仓库
https://www.liaoxuefeng.com/wiki/896043488029600/896954117292416
这部分主要教我们如何创建github账户,然后把本地账户与github关联起来。我们有必要理清工作区、暂存区、本地仓库、远程仓库之间的关系以及它们之间互相转换的命令。
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进行一个授权,授权结束后自然就可以联网。授权成功的画面在这里:
如果要删除远程库,那么首先应查看远程库的情况:
git remote -v
而清除远程库的动作是这样的:
git remote rm origin
4.2 从远程库克隆
#从远程仓库往下克隆东西(后面换成自己要克隆的ssh协议地址)
git clone git@github.com:junyanz/pytorch-CycleGAN-and-pix2pix.git
鲤鱼王小蓝说:
好了,今天就写到这里了,明天我们继续学习git的分支结构。书签在这:
https://www.liaoxuefeng.com/wiki/896043488029600/896954848507552
另外推荐一个不错的git教程。
https://www.cnblogs.com/xulinjun/p/12434778.html