git手记
来源:互联网 发布:淘宝违规词查询工具 编辑:程序博客网 时间:2024/06/16 13:03
0. 基础知识
git属于分布式版本控制,通俗来说,就是整个项目没有真正意义上的官方版本,每个人在自己的电脑上都有一个属于自己的版本库,但是大家通过pull(拉回),push(推送)和commit(提交)来完成协作。
其中:
1. pull是从别人的版本库那里获取内容
2. push是把内容推到一个版本库
3. commit是提交到版本库
这里有一个版本库的概念,你可以暂时理解为存储着文件的一个文件系统(好吧,你想说文件夹也行)。
1. 安装
https://git-scm.com/downloads
按照对应的系统版本下载需要的git。
1. 初始化
强烈建议跟着用bash做一遍,十分钟左右理解。
cd /home/yexu/project/gitproject #到你想要建立项目的文件目录下git init #这里就是你的git项目的根目录了
2. 试着提交
echo It is my first time to use git.>README #此时文件还只是存在你的本地目录,没有提交,跟别人也没有关联git add README #此时文件可以认为是进入了一个准备提交的缓存区git commit --message "这是一些关于本次提交的说明" #
到这里,你的文件就已经提交到本地版本库了。
这里要 解释 再次说明一个概念:
版本库和你硬盘上的文件不同,当年创建了文件时,文件就存在于你的硬盘了,但是知道你添加进版本库,文件才进入到版本库,版本库时用来和其他(人)的版本库交互的。在逻辑上相当于一个大文件夹,这里包含着你的工作文件。
3. 查看状态
git status
这个命令用以查看本地文件状态(其实就是还有哪些文件没有提交到版本库,和版本库相比有什么变化)。发现自己的文件还有没提交的就可以提交等等。
4. 显示历史
git loggit log -n 5 #查看最近5条git log --oneline #一行显示
5.pull
为了使用这个命令第一件事可以克隆一下自己的版本库:
git clone ../gitproject ../gitproject-clone #克隆一个版本库,用来测试版本库之间的交互
然后再到clone的文件夹下修改:
cd ../gitproject-clone #到达clone目录echo emmmm>em.txt #生成新文件git add em.txt #添加到缓存git commit --message emmmmm #正式提交
现在clone版本提交了,但是也只是提交到了自己的版本库里面,原有的版本库想要把clone部分的修改取回来怎么做?
cd ../gitproject #到达源目录git pull ../gitproject-clone master #从clone版本库取回
这样就完成了从别人的版本库里取回别人的代码的工作。
6. push
但是,在多人协作的时候,大家并不知道该从哪里拿数据,因为项目是 分布式的,也就没有一个中心,大家该从哪里pull呢?可以创建一个bare版本库,这个版本库只用来汇聚大家的提交和给大家pull用的,可以想象成一个大仓库,包含所有人推送过来的版本,这是一个共享的版本库。
git clone --bare ../gitproject ../gitproject-bare.git #创建共享版本库git push ../gitproject-bare.git master #push自己的代码到共享版本库
其他的成员就可以通过pull把你提交的代码取回。比如你在源库中push的代码,你的clone也可以pull回去。
关于push的有一点补充
//2017/10/27更新git remote add origin https://github.com/name///代码意义是将远程仓库同步到本地,命名默认为origin,本地的原始仓库
报错的话:
origin does not to be a git repository
那有可能就要重新建立一下连接。
正文结束。
强烈推荐这本书(德国人写的,人民邮电出版社):
参考文献 《Git学习指南》 ISBN:978-7-115-43676-4
- git手记
- Git手记
- git手记
- git手记
- git手记
- git 常用命令手记
- 手记
- 手记
- 手记
- 手记
- Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记
- Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记
- Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记
- Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记
- Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记
- Maven手记
- Pluto手记
- 手记1
- 数的全排列
- Ubuntu的那些事儿
- Hibernate基于主键单向和双向多对多关系映射
- 2、链路层
- Android代码架构之MVP
- git手记
- 成为一枚优秀的创业者,必须学会画的三张脑图
- CodeForces 735D Taxes
- linux各种格式的压缩与解压缩方法
- js调用打印机打印多联单,部分打印,执行打印事件后调用程序
- nodejs中的两次调用favicon
- 51nod 1268 和为k的组合
- Git远程版本库
- bitmap base64互转