Git--分布式版本控制系统
Git的两大特点:
- 版本控制:可以解决多人同时开发代码的问题,也可以解决找回历史代码的问题
- 分布式:Git是分布式版本控制系统,同一个Git仓库,可以分不到不同的电脑上。其中有一台作为服务器,24小时开机,其他人都是从这个台服务器仓库克隆一份完整的版本到自己的电脑上,并且把各自的提交推送到服务器仓库里,也可以从拉取别人的提交。自己可以搭建这个服务器,也可以直接使用github。
一、Git的基本操作:
- 安装git
1 | sudo apt-get install git |
- 使用 git init 初始化仓库
1 | mkdir floder # 创建一个文件夹,这个文件夹就是 工作区 |
- 创建一个版本
1 | git add file_name # 添加修改到暂存区 |
- 查看版本记录
1 | git log |
- 版本回退:在git中,HEAD指针指向最新的版本,使用HEAD^或者HEAD~1表示最新版本的前一个版本,同理,HEAD^^或者HEAD~2表示最新版本的前两个版本
1 | git reset --hard HEAD^ # 回退到上一个版本 |
- 查看操作记录
1 | git reflog |
- 查看工作状态
1 | git status |
- 撤销修改
1 | # 如果修改了文件,在git add 之前,你想撤销之前的修改,使用下面命令: |
- 文件对比:
1 | # 比较工作区中的文件和某个版本有什么不同【比较的是同一个文件】: |
- 删除文件
1 | # 在工作区删除文件也是一种修改,如果在工作区删除了文件,可以使用 git checkout -- 文件名恢复文件 |
二、Git分支管理
- 查看当前有几个分支,并且在哪个分支下工作
1 | git branch |
- 创建新分支
1 | # 创建新分支 |
- 切换分支
1 | git checkout 分支名 |
- 合并分支
1 | # 一般在主分支合并其他分支 |
- 删除分支
1 | # 注意:一般在把分支合并之后再删除分支 |
- 解决分支合并冲突
1 | # 合并分支的时候,可能会发生合并冲突 |
- 没有冲突的非快速合并
1 | # 在合并分支时,没有发生冲突,但是此次合并不是快速合并,而是其他策略 |
- 禁用快速合并的合并操作【git merge 默认是快速合并】
1 | git merge --no-ff -m "提交描述" 分支名 # 禁用快速合并,会在合并后进行一次提交 |
- 保存工作现场
1 | git stash # 保存当前分支的工作现场 |
- 拉取最新的版本
1 | git fetch origin master:temp # orgin是项目的拉取地址, |
三、GitHub的使用
- 从github克隆项目
1 | git clone ssh/https的克隆地址 # 把项目克隆到本地 |
- 推送分支到github
1 | git push origin 分支名 # 把该分支推送到github仓库 |
- 设置本地分支跟踪远程服务器分支
1 | git branch --set-upstream-to=origin/远程分支名 本地分支名 # 设置本地分支跟踪远程服务器分支 |
- 从远程分支拉取代码
1 | git pull origin 分支名 # 从远程分支拉取代码 |
- 如果是自己把项目上传的推送
1 | git add . #把文件夹所有文件都添加 |
Original author: John Doe & wooyee.Landucheg
Original link: http://yoursite.com/2019/08/18/Git-分布式版本控制系统/
Copyright Notice: Please indicate the source of the reprint (must retain the author's signature and link)