赞
踩
最近在学习git ,下面整理学习的步骤和笔记以及一些错误提示的解决方法,以便日后查看,希望对读者有帮助。 若喜欢的话可以三连支持一下,谢谢!
Git
Git 命令 基于开发案例
Git :分支特性 分支创建 分支转换 分支合并 代码冲突解决
GitHub
创建远程库
代码推送 Push
代码拉取 Pull
代码克隆 Clone
SSH免密登录
Idea 集成 Github
Gitee 码云
码云创建远程库
Idea 集成Gitee 码云
在软件开发过程中,协同开发以及版本迭代更新是再正常不过的事情了。但是能够完整、便捷的将版本进行管理确是不太容易的一件事情。
就好比,一个项目,我们开发了第一版、第二版、第三版、打死不改版、绝对不改版、终极版、终极不修改版以至于再改就砸电脑版,最终敲定的方案是第一版。这种情况下,改到最后已经看不出当初的模样了。所以,我们需要将每一次的修改记录并保存下来,以便于为后面的版本溯源。
凡事都是有两面性的,作为版本保存和记录的软件系统也是一样的。所以就诞生了两种不同的管理模式,一种是叫集中式版本控制系统(例如CVS及SVN),另一种则是分布式版本控制系统(例如Git)。
集中式版本控制系统
集中式的版本控制系统,所有的版本库是放在中央服务器中的,也就是说我们每一次的修改上传都是保存在中央服务器中的。中央服务器就是个大仓库,大家把产品都堆里面,每一次需要改进和完善的时候,需要去仓库里面把文件给提出来,然后再操作。
这种版本管理模式,存在的问题是协同工作时可能造成的提交文件不完整,版本库损坏等问题,A提交,B也提交,C下载的时候可能得到的仅是A,B提交版本中的一部分。其次,集中式版本控制系统必须要联网才能工作,不论是局域网还是互联网,必须上网才能将本地版本推送至服务器进行保存。
分布式版本控制系统
分布式版本控制系统,重点在于分布。分布的含义不是说每台计算机上只留有版本库的一部分。**恰恰相反,分布的含义是每台计算机上都还有一个完整的版本库。**这个时候,你的修改仅仅需要提交给本地的版本库进行保存就可以了。那有人就问了,协同开发的话,这玩意儿怎么能协同呢。
不同于集中式版本控制系统的“中央服务器”,分布式版本控制系统可以通过推送版本库,实现不同的计算机之间的版本共享。什么意思呢?就是说对于同一个文件A,如果两个人同时对A文件进行了修改,最新的版本应该都保存在各自的计算机中,想要实现协同开发,只需要将各自的最新版本库推送给对方,就可以得到最新的版本库了。
但是这里面有个问题,就是一个团队很大的情况下,大家都去修改,到底找谁同步版本库,不乱套了嘛。而且,大的开发项目也不是简单的两台计算机之间的版本互推就可以得到完整的版本库的。所以,分布式版本控制系统中通常也会有一台充当“中央服务器”的计算机,大家都把版本推送到这台计算机上,而需要同步的人只需同步这一台固定的计算机就可以。
读到这,您可能觉得,又绕回到集中式版本管理系统了。实则不然,所谓的分布式管理中的“中央服务器”是用来“交换意见”,或者说充当中介作用的。每一台计算机通过和这台固定的中介交换意见以后,都会拥有完整的版本库。
举个不恰当的例子,分布式中的“中央管理器”就是《乡村爱情》中的大脚超市,刘能、赵四以及长贵都掌握了最新的绯闻,通过大脚超市的意见交换后,每个人都掌握了整个象牙山的绯闻。我们可以看到,在这样的绯闻生态下,即便是王长贵挂了,象牙山的故事仍然可以继续。但是如果长贵是集中式的“中央管理器”,每个人可以将自己知道的绯闻、秘密吐槽给他且不外传,那么他的死将会直接导致《乡村爱情》的终结。
Git是优秀的分布式版本管理系统
历史版本—本地库
临时存储—暂存区
写代码—工作区
Git和代码托管中心
代码和托管中心是基于网络服务器的远程代码仓库,一般我们简单地称为远程库。
命令名称 | 作用 |
---|---|
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.email 邮箱 | 设置用户签名 |
git init | 初始化本地库 |
git status | 查看本地库的状态 |
git add 文件名 | 添加到暂存区 |
git commit -m"日志信息" 文件名 | 提交到本地库 |
git reflog | 查看历史记录 |
git reset --hard 版本号 | 版本穿梭 |
签名的作用是区分不同操作者身份。用户的签名信息在每个版本的提交信息中能够看到,以此缺人本次的提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。
注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系
若出现如下的错误提示:
这个错误就是并不能一步就cd到制定文件夹,需要一步一步转换,需要一步一步的到你指定路径,解决方法如下图所示:
重点就是一步一步地到指定的路径
On branch master:当前的本地库在master分支里
No commits yet : 目前没有提交过任何东西,是一个空的git库
nothing to commit : 没有什么东西需要提交,因为没有创建任何文件
vim hello.txt :就是创建一个hello的txt文件并在里面写东西
按 i 进入insert 模式;按 esc 退出 innsert 模式;
按大写ZZ就是保存,保存完之后就跳出来
按 ll 就查看hello.txt;
cat hello.txt :查看hello.txt里面有什么
tail -n 1 hello.txt :查看最后一行写了什么
现在就可以查看hello.txt的状态,发现前面两个和之前一样没变
第三个变成了untracked files(未被追踪的文件),hello.txt还是红色的,
红色代表文件虽然有了,但是存在于工作区,git没有追踪过这个文件
用git add 去追踪,下篇文章就是添加暂存区。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。