Git
Git项目
源代码版本控制器
(代码管理工具),便于团队的协作开发。
Git 安装成功后的如果我们在直接桌面(desktop)打开
的话,需要进行一系列的操作才能到达我们的目的地。
首先给出一些基本的文件操作命令:
- cd 磁盘:进入某个盘
- cd..:返回上级目录
- ls:列出当前盘下的文件名
- ll:详细的列出当前文件的信息(比如年月日等)
- pwd:打印当前路径
- mkdir:创建文件夹
- touch:创建某个文件
- vi:编辑某个具体的文件
- cat:可以查看文件的具体内容
- insert或者i:切换为编辑模式
- Esc+:wq:保存并推出
- Esc+:q!:强制推出不保存
初识git
git提交和下载指的是,把本地仓库中的内容和远程仓库保持关联,让代码同步->分布式
- 本地仓库也是可以实现提交、历史版本控制等操作,就是一个独力的仓库个体。
- 有需要的话,我们还可以让本地和远程关联在一起,然后把本地的一切信息同步到远程仓库中。
建立本地仓库的两种方式
一、初始化设置
- 本地建立github仓库,并且和远程仓库建立连接
建立本地的git仓库:git init
->在当前的项目文件夹中生成一个.git文件(不能删除,删除后就不是本地仓库了) - 让本地仓库和远程仓库之间建立的连接通道
$ git remote add [名字] [远程仓库地址]
[名字]:给传输通道起个名字,一般我们都叫做orijin
注意是https开头的,通过这个地址可以找到远程仓库
- git remote -v 查看连接通道
- git remote rm [名字] 删除连接通道
- git remote update [名字] 更新连接通道
二 、直接克隆
git clone [远程仓库地址]
- 在本地建立一个git仓库。
- 让本地仓库和远程仓库保持链接。
- 把远程仓库中的源代码拉取到本地。
$ git pull origin master过origin这个通道和远程仓库连接,并且把master这个分支中的源代码更新到本地仓库中(pull->拉取只能看不能改,防止冲突)
本地仓库分为三个区域:
- 工作区:开发代码
- 暂存区
- 历史区:记录了各个历史版本,我们可以在这个区域中查看一时段的代码更新,也可以把代码回滚到某一阶段。
工作区开发代码->暂存区->历史区(生成版本)–>(需要回滚)直接从历史区把某一个版本的代码覆盖工作区域的代码
如果需要推送到远程仓库,我们把本地历史区的内容推送到远程仓库即可。
还有一点需要注意: gitignore:这个文件中存放的是所有上传远程服务器需要忽视的内容
git的常用命令
git add 文件名
将单个文件上传到暂存区
git add .
将工作区的所有文件上传到暂存区
git checkout 文件名
放弃工作区对应文件的更改
git checkout .
放弃工作区所有文件的更改
git commit -m'本次提交表述'
把暂存区的内容上传到历史区,并生成一个版本号-m’这个参数一定要加’
git status
查看本地文件状态
红色:当前文件还没有增加到暂存区(文件还在工作区)
绿色:当前文件还没有上传到历史区(已经上传到暂存区)。
git diff --cached
比较暂存区和历史区的区别
git diff master
比工作区和历史区的区别
git checkout 文件名
从暂存区回滚到工作区
git reset HEAD 文件名
将本次的暂存区回滚到上一次
git reset --hard 版本号
回滚历史区
git reflog
查看所有的版本号(切换分支也会产生版本号哦!)
git branch
查看分支
git branch 分支名
创建分支
git checkout 分支名
切换分支
git checkout -D 分支名
删除分支名,注意不能再该分支下删除该分支
git checkout -b 分支名
创建并且换分支名
git merge 分支名
将分支dev合并到master,合并到谁上面就在那个分支下面执行
git log --graph
内部命令提供的简易图表
git push origin master
把本地 仓库历史区中的内容(包含提交的记录)都有更新到远程仓库的master分支下=>此处应该叫做同步,这样比提交叫法准确,因为在每一次push后,不仅仅是把代码推送到远程仓库中,而且本地新增加的项目版本记录也同步到了远程仓库。
在分支上添加文件,需要提交后才能归这个分支所有,否则你改的只是工作区的内容
提交到谁的身上,本次的结果才归某个分支,如果再次进行修改的话,修改的是当前分支的文件,而不是公共的文件;如果不提交的话就会出现以下的错误
经常有这样的事情发生,当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是git stash命令。
例如:当前在v2分支下面,而且我本地的内容已经修改,现在我想要切换到dev分支下面,我可以进行以下操作
git stash
将目前的工作内容存储在堆栈中,这样的话我们就可以切换到别的分支了
git stash apply
将存储在堆栈中的内容释放出来,可以接着进行开发了
只需要通过上面两步就可以解决工作中多分支开发的问题,从而进行版本的迭代。