1、基础概念
1.1、版本控制系统
集中式版本控制系统:版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
分布式版本控制系统:分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。
1.2、工作区与暂存区
工作区:项目的工作目录;
版本库:.git中是该项目的版本库;
暂存区:保存下次将提交的文件信息,一般在git仓库中,是一个名为index的文件。
1.3、管理修改
git checkout –
撤销工作区的修改,让文件回到最近一次commit时或add前的状态。
git reset HEAD
撤销暂存区的修改,或版本回退,HEAD是指代最新版本。
git rm
删除版本库中文件。
1.4、远程仓库
https://www.liaoxuefeng.com/wiki/896043488029600/898732864121440
1.5、分支管理
再介绍下一个git项目中不同分支的关系
一开始,只有一个master分支,HEAD指向master
从master上创建新分支dev,Git新建一个指针叫dev,指向master的当前提交,再把HEAD指向dev,就表示当前分支在dev上:
在当前分支上的提交,会使dev指针往前移动一步,而master指针不变。
dev上的工作完成后,把dev合并到master上,这步操作是把master指针指向dev当前提交。
合并完成之后,就可以删除dev分支,删除操作就是把dev指针给删掉,然后就只剩下master分支。
以上步骤用命令表示如下:
git checkout - dev
// 创建dev分支
git add demo.txt
git commit -m "demo.txt"
// 在dev分支上修改
git checkout master
git merge dev
// 把dev分支上修改的代码合并到master分支上
git branch -d dev
// 删除dev分支
1.6、解决冲突
常见命令
1、查看状态
git status:查看整个仓库的当前状态。
git diff [demo.txt]:查看指定文件的修改内容。
git log:查看历史提交日志。
git reset:版本回退。
- HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
- 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
- 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
常见问题积累
1、本地项目上传远端
https://www.zhihu.com/question/349244029/answer/2386818348
参考
https://www.liaoxuefeng.com/wiki/896043488029600