代码备份以及协同工具——git
目录
用的最多的代码管理工具大概有两种:git和svn,本文主要介绍git工具
是什么
是一个代码协同管理、代码备份管理工具
二者不同
分布式和集中式
分布式:每一个结点都保存完整的代码,没有统一的中央服务器,节点之间相互推送下载代码完成代码共享,例如 git
集中式:代码集中管理,每次完成的代码上传到中央管理器,然后再统一从中央管理器中下载代码使用,例如 svn
安全性:git < svn
效率:git > svn
作用
- 防止代码丢失,可以做备份
- 代码版本的管理,可以进行多个版本之间的跳跃
- 可以方便的将代码在多人之间进行共享传输
- 多人开发时,有各种模式可以方便代码管理
特点
- git 可以管理各种文件,特别是代码项目,多在 linux 和 unix 系统中使用
- 是分布式管理,不同于集中式,这是 git 和 svn 的核心区别
- git 可以很好的支持分支,方便多人协作工作
- git 分布式代码分家安全,有全球唯一的 commit 版本号
- git 是开源的系统
- 使用 git 可以脱网工作,且数据传输速度较快
安装
命令安装
sudo apt-get install git
源码安装
去官网找源码包
将源码包拷贝到虚拟机后解压
make? ?编译源码
make? ?install
配置
命令
git config
三种配置级别
(1)系统中所有的用户都可以使用该配置(加sudo)
????????????????git config --system 配置信息
(2)当前用户可使用该配置
????????????????git config -- global 配置信息
????????????????配置文件是:~/.gitconfig
(3)当前项目可使用该配置
????????????????git config
????????????????配置文件是:当前项目下的 ./.git/config
配置信息
(1)配置用户名
????????????????git config --system user.name you
(2)配置邮箱
????????????????git config --system user.email xxxxxxxxxxx
(3)配置编辑器
????????????????git config core.editor vim
(4)查看当前所有的配置信息
????????????????git config --list
(5)命令行是否有颜色
? ? ? ? ? ? ? ? color.ui true
基本操作
(1)初始化仓库
????????????????git init
????????????????在某个目录下初始化仓库后会自动产生.git 目录,改目录下工作的所有文档可使用 git 进行管理
(2)查看文件、分支状态
????????????????git status
(3)将指定的文件提交到暂存区
????????????????git add
????????????????????????将指定文件(任意文件类型的文件)提交到暂存区
????????????????git add * 将当前目录下所有的文件提交到暂存区
????????????????????????注意: 提交到暂存区的文件没有存放在本地仓库中
????????????????git rm --cache 删除暂存区的指定文件
(4)将暂存区的文件提交到本地仓库
????????????????git commit -m 将文件同步到本地仓库并且设置提示说明
????????????????????????注意: 一般提示时需要附加一些同步信息,在-m 后添加 所有对工作区的修改,如果想同步到仓库,都需要执行当前命令(add --> commit)
(5)查看 commit 日志
????????????????git log 查看所有 cimmit 日志
????????????????git log --pretty=oneline 查看单行日志
(6)比本地文件和本地仓库中文件的区别
????????????????git diff <文件名>
恢复操作
(1)从本地仓库恢复本地文件
????????????????git checkout
(2)丢弃工作区的修改
????????????????git checkout -- 丢弃本地指定文件中的已经修改的内容(--两边都有空格)
(3)本地仓库文件的移动和删除
????????????????git mv 在本地仓库中将源文件移动目的目录中(本地也会移动)
????????????????git rm 在本地仓库中删除指定的文件(本地也会删除)
????????????????????????注意: 移动和删除后,需要再次执行 git commit
(4)回到上一个版本
????????????????git reset --hard HEAD^? ? ? ?HEAD 后面的^数量决定了回到上几个版本
(5)回到指定的版本
????????????????git reset --hard 只需要 commit id 的前七位即可
(6)查看所有的历史版本
????????????????git reflog 最新的操作始终在最上边
标签管理(版本管理)
(1)什么是标签
????????????????在当前工作的位置添加快照,保存工作状态,一般用于版本的迭代
(2)创建标签
????????????????git tag 创建标签
????????????????git tag -m 创建标签并设置提示信息
????????????????????????例如:git tag v1.0 默认是在最新的 commit id 处创建标签
????????????????git tag 指定某一个 commit id 处创建标签
(3)查看标签
????????????????git tag
(4)删除标签
????????????????git tag -d
(5)查看指定标签的具体信息
????????????????git show
(6)恢复到指定标签的位置
????????????????git reset --hard
临时工作区管理
(1)创建保存临时工作区
????????????????git stash
(2)查看临时工作区
????????????????git stash list
(3)使用指定的工作区
????????????????git stash apply stash@{编号}
(4)使用最新的临时工作区并删除
????????????????git stash pop
(5)删除指定的临时工作区
????????????????git stash drop stash@{编号}
(6)删除所有的临时工作区 git stash clear
远程仓库
(1)什么是远程仓库
????????????????另一台主机上的仓库,可以被其他主机访问到
(2) 创建远程仓库
????????2.1)创建文件夹 mkdir
????????2.2)设置文件夹的属主 chown :
????????2.3)进入文件夹,将该文件夹设置为共享仓库 git init --bare (项目名称一般都是以.git 结尾)
????????2.4)设置本地仓库的属主 chown -R :
(3)添加远程仓库
????????????????git remote add @:
????????????????????????注意: 默认使用 ssg 作为传输手段,仓库名称可以任意起名字 必须在本地的某个 git 仓库下执行,才能是本地仓库和远程仓库关联
(4)删除远程仓库
????????????????git remote rm
(5)将本地仓库的文件推送到远程仓库
????????????????git push -u
????????????????????????注意:第一次推送需要加-u,以后不需要
(6)从远程仓库获取项目
????????????????git clone @:
(7)从远程仓库拉取分支或者代码,可以更新代码
????????????????git pull 拉取远程仓库指定的分支并且与当前分支合并
????????????????git pull : 不合并
(8)代码推送和更新
????????????????git push 将本地仓库的文件推送到远程仓库
????????????????git pull 从远程仓库中更新代码
????????????????git fetch 也用于更新,但是如果有新的分支不会合并
(9)本地旧覆盖版远程新
????????????????git push --force 当本地比远程旧,用本地覆盖远程
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!