Git基本使用
Git的基本介绍
Git&SVN:
Git:分布式代码管理系统
SVN:集中式的代码管理系统
Git可以做的:
1)版本控制,解决找回历史代码问题
2)分布式:同一个git仓库可以分布到不同的机器上,首先找到一台服务器的角色的电脑或服务器,可以是本机,也可以是github网站,其他每个人都从这个’服务器’仓库克隆一份代码到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库拉去别人的提交
集中式和分布式的区别——工作电脑是否保存了代码的完整版本
集中式没有保存了完整版本,一旦中央服务器挂掉了,其他人就不能工作了
分布式保存完整的版本,一旦中央服务器挂掉了,还能继续工作
Git使用的步骤:
1.安装git:sudu apt-get install git ——》检查是否安装直接输入:【git】命令
2.本地创建一个文件
3.创建版本库
git init
git借助【.git】这个文件来管理这个目录下的文件
4.创建一个版本(下面2句命令):
git add ***文件
git commit -m “描述信息”
ps:怎么查看提交的版本记录呢?
git log
接下来再提交一次,git log查看:
补充:版本的回退:
git reset --hard HEAD~1
每次提交完代码,就会有一个HEAD指针指向最新的版本
比如回到前2个版本?
写法1:HEAD^^
写法2:HEAD~2
回到前10个版本:HEAD~10
所以其实只要把HEAD指针的指向变了,那当前的版本就变了,而且git并不会删除版本2如果向回到版本2呢?使用【git reset --hard 版本号】语句
ps:把终端关掉,找不到git提交版本号了怎么办?——【git reflog】
补充知识点:Git的工作区、版本库(也叫暂存区):
工作区:
比如上面的git_project目录就是工作区,就是当前我们写代码的目录
版本库(暂存区、版本信息):
工作区有一个隐藏的文件【.git】,这个是git的版本库
我们通常使用的【git add】命令就是把工作区的代码修改添加到暂存区,【git commit 】命令就是将暂存区的代码提交到当前分支
如何查看暂存区的内容——【git status】
如何撤销修改:
1)对于没有add到暂存区的可以直接checkout分支上面的那个文件,即丢弃工作区当前的改动
git checkout -- ***文件
2)对于已经add到暂存区的使用
git reset HEAD ***文件
补充知识点:如何比较同一文件不同版本的代码异同呢?
ps:- + 号对应不同的版本,要注意
举例:比较工作区和暂存区同一文件的不同——【git diff HEAD -- ***文件】
举例:比较两个不同暂存区版本的文件——【git diff HEAD HEAD^ -- ***文件】
补充知识点:删除文件:(也是工作区的改动,可以使用checkout):
git rm ***文件
git commit -m "***"
实际工作场景:
1)master是一个主分支,其实是HEAD指向了master指针,master指针指向了主分支
此时查看当前分支显示只有master:git brach
2)建立一个dev分支,其实是建立了一个dev指针,指向了master代码分支,HEAD指针此时指向了dev指针,而master指针还是在原处不变
git checkout -b dev
此时查看日志:git log --pretty=oneline——最新一行显示了HEAD指向了dev分支
3)修改文件add到暂存区,并commit,此时commit到的是dev分支
4)第3步的dev的工作做完后,我们要把代码合并,这是只需要把master指针指向新的代码分支,HEAD指针指向master指针即可
git checkout master
5)把dev分支合并到master分支
git merge dev
ps:这时是fast-forward模式,如果两个分支都对同一个文件做了修改,就会出现代码冲突,无法fast-forward,需要手动解决,重新commit
6)最后删除dev分支,其实就是删除dev指针
git branch -d dev
ps:这里其实就是删除指针而已,很快
7)push到服务器的git代码仓库
git push origin master
8)从远程分支上拉取代码
git pull origin 远程分支
简易操作流程及命令:
git clone ****
git checkout -b dev
git add ***
git commit -m ***
git push origin dev
小Tips:
1)设置本地分支跟踪远程github的分支:
git branch --set-upstream-to=origin/dev dev
git push
2)在pycharm中使用git:
绿色的代表这次新增的文件,蓝色的代表有改动的文件
commit的时候最好每个文件都单独加comment
开发前最好从远程分支上git pull拉取最新的代码一下
好贴参考:https://www.cnblogs.com/guoyaohua/p/Git-tutorial.html