目录
版本管理Git
三种应用场景来使用版本管理:
1、个人单设备
2、个人多设备
3、多人团队使用
02环境与基本概念
git的文件版本管理有两种方式:
1、Git命令行工具;
2、图形化界面;----这里使用Source Tree;
(Source Tree、GitHub、Tortoise Git)—底层都为git;
软件安装
一、Git & Source Tree
官网免费安装即可。
基本概念
工作区:可以理解就是自己的文件目录;
仓库:可以理解就是git提供给我们可以存放每一个版本全部文件的地方;
结果:
①当我们需要文件以前的某个版本的时候,就可以从仓库拉到工作区;
②当我们将文件修改完成之后,就又可以把现在工作区的版本文件再存到仓库。
文件的状态:
03场景
场景1:一个人,一台电脑
- 我自己的电脑在使用,文件的内容也不用和别人合作;
- 只有这一台电脑,不需要在多个电脑设备同步文件内容;
- 总结:就是在自己电脑建个仓库,来管理文件,也不用上传到云端,只进行版本管理。
场景2:一个人,多台电脑或设备
- 有多台电脑,可能在实验室台式机、在宿舍笔记本等情况;
- 例如白天在实验室的台式机工作,回到宿舍又想用笔记本打开,常见就是用U盘拷来;
- 而使用Git,就是有一个云平台了;
- 白天台式机的内容,可以发送同步到云端;晚上自己笔记本,将云端的文件再同步到本地;
- 总结:就是在Git的云端平台建个仓库,来管理文件,在其他设备都可同步,每个设备工作完就再同步到云端更新。
场景3:多个人,团队合作
03Git常用命令
git clone xxxx
拷贝一份远程仓库,也就是下载一个xxxx项目。
git branch xxxx
创建一个xxxx分支。
git branch -vv
查看本地对应远程的分支对应关系。
git branch -a
查看本地和远程所有分支。
常用 git checkout -b xxx
以当前本地分支作为基础,再切出一个,新建一个xxx分支。
git push origin xxx
也建立一个新的远程xxx分支。
git branch --set-upstream-to=origin/xxx
将当前本地分支与远程的xxx分支关联,这样当前的分支push的时候,就是到远程的xxx分支了。
常用 git status
看看代码有什么变化。
常用 git diff
可以看看变化了什么代码,删减了什么。
常用 git add .
将本地修改好的代码,准备提交。
常用 git commit -m“我的修改的备注”
此时本地的当前分支下已经提交修改好的了,并且有我的修改的备注了(但是此时远程的还是没提交更新的)。
场景:如果提交多个文件,并想对各个文件添加各自的提交消息:
常用 git push
把修改之后的,并且本地已经提交修改了,再push到远程的分支上,这样远程的也就提交修改的了。
=间隔一下===
常用 git pull
拉取最新远程代码。
常用 git merge xxxx
将xxxx分支的内容,合并到我们当前本地,目前的分支上。(记住是本地的)(记住是谁合并到谁,哪个变哪个没变)。
常用 git checkout xxxx
切换到xxxx分支。
git checkout .
这个就能将修改的部分代码清理掉不修改了。
再还没有add之前,并且这时候发现刚刚修改的部分,不想修改了。
(记住在本地代码还没提交之后,就是还没add之前)
=间隔一下===
git branch -d xxx
删除分支(用于删除的,一般都要谨慎使用)。
这是删除的本地分支;但是如果你本地,现在也正在xxx分支,那就没办法用这个来删除你现在所在的xxx分支。
(远程,就是大家共有的;本地就是你自己电脑的)
git push origin --delete xxx
删除远程分支;(这个就是要超级超级超级谨慎了)
这是删除的远程分支。
git reset --mixed
文件退出缓存区,但是修改保留。
退出之后,就又到还没add的状态了,但是修改是有保留的。
(之前的 git checkout .是还没到add的,然后取消修改内容)
git reset HEAD .
撤销所有已经add的文件,这个是已经add的了,在缓存区再撤回。
git reset HEAD filename
撤销某个文件或者文件夹,名为filename。
(假设已经提交了有10个在缓存区,然后就可以选择其中的一个filename给撤回)
git reset --soft HEAD^
撤销commit,返回成暂存区add的状态。
未add之前,要撤回修改内容:git checkout .
已经add但未commit之前,要撤回add但保留修改:git reset–mixed
已经add已经commit,要撤回commit回到add状态:git reset --soft HEAD^
git reset --hard HEAD^
撤销commit,直接新增修改内容都全部撤销,也就是前面三步的合并。
=间隔一下===
git stash save “贮藏的备注”
场景:
目前有个开发在做,突然接到另一个任务,但现在这个代码又写了一半,提交上去又不合适和麻烦,就需要贮藏;
就是先在本地藏起来,等需要用到再打开使用;
git stash list
查看贮藏的列表。
git stash pop
释放贮藏的内容,到当前分支;
直接pop的话,如果有多个,那就是第一个被用到,也就是序号为0的贮藏。
git stash pop stash@{对应的数字}
如果有多个贮藏,可以选择需要拉取哪个贮藏,在对应数字填list出来的贮藏的列表里面看。
git config --list
查看这个项目的git配置。
git remote prune origin xxx
修剪掉已经删除远程分支的本地分支。
git log
查看最近的提交信息。
可以查看最近的提交信息,也有提交的ID,这样想要恢复也是可以用这个ID的。
注意:英文状态下按q ,即可退出git log状态。
git log --graph --online
用图表的形式显示,这样也就比较清晰一点。
在这里可以看到每个版本的ID。
git reset --hard ID
将对应之前版本的ID复制到ID那里,就可以回退到对应版本。
(此时是对本地的操作,远程还是在最新版本的ID的)。
git push -f
(谨慎使用)
前面回退版本之后,要推送到远程仓库可能不行。
这里加了-f就是强制更新,但一般不要用这个。
=间隔一下===
学习来源:B站:Git&Source Tree版本管理
学习来源:B站:合集.git常用命令,覆盖90%场景
版权归原作者 凌晨7点 所有, 如有侵权,请联系我们删除。