git版本管理系统使用
版本管理系统Git
关注公众号“轻松学编程”了解更多。
git下载链接:https://pan.baidu.com/s/12vJn-K0lK9XlkVQbNe8S-A 密码:m4mt
图形界面客户端链接:https://pan.baidu.com/s/1SM-qdo_JZluotoeAoTNyBw 密码:picl
常用图形界面:SourceTree
Git常用基本命令
git checkout 分支名 #切换分支
git checkout -b 分支名 #创建分支并切换到该分支
git push origin --delete 分支名 #删除远程分支
git branch -a #查看所有分支
git branch -D 分支名 #删除本地分支,注意先切换到到其它分支
将master分支内容提交合并到dev分支
git checkout master #切换到本地分支
git pull #拉取远程文件到本地
git add . #提交到本地
git commit -m 'merge'
git checkout dev #切换到dev分支
git merge master #合并
git push origin dev #推送到远程分支
1、版本控制工具优势
- 查看版本历史记录
- 查看成长记录
- 版本回退
- 明确责任人
- 多人协作开发
- 同步团队其它成员的代码
- 在自己的分支上工作
- 中心化和分布式
- 中心化(SVN):代码管理服务器在一台核心服务器上,所有人都必须和代码服务器保持网络连通
- 分布式(Git):中心仓库是GitHub,可以有很多本地仓库
2、GitHub的注册与使用
Clone与Fork
Download
Git的安装与配置
- 下载:https://git-scm.com/download/
- git config --global user.name “xxx”
- git config --global user.email “xxx”
3、Git常用命令
- 本地仓库
- 创建本地仓库
- cd xxx #这里的xxx路径,是Linux风格路径,Windows上可以使用拖拽文件夹的方式自动形成
- git init
- 本地提交
- git add xxx
- git commit xxx -m “xxx”
- 比较和查看日志
- git status
- git diff
- git log
- git log --pretty=oneline
- git reflog #查看所有分支的所有操作记录(包括被删除的)
- 版本回滚
- git reset --hard
- HEAD^
- HEAD^^
- HEAD~100
- 具体版本号
- git checkout – filename #检出文件(注意空格)
- 如果add但没有commit时,检出的是缓存区的内容
- add且commit了时,检出的是版本区的内容
- 优先检出缓存区而不是版本区
- git reset --hard
- 添加忽略
- touch .gitignore
- vim .gitignore
- i // 进入编辑模式
- esc,: // 进入命令模式
- 在冒号后输入wq // 保存退出命令
- 创建本地仓库
- 添加公钥到github账号
- ssh-keygen -t rsa -C “your email”
- cat id_rsa_pub
- ssh-agent bash
- 启动ssh-agent
- ssh-add sirouyang
- 绑定私钥
- ssh -T git@github.com
- 秘钥配对测试
- 本地仓库关联远程仓库
- cd local_repo_path
- git remote add origin your_repo_address
- git remote rm origin
- git pull origin master
- –allow-unrelated-histories #同意合并不相干的历史时
- git push origin master
- 操作远程仓库
- git clone your_repo_address
- #注意克隆下来的分支只是master分支,在分支上工作需要克隆后再做一下拉取分支的工作
- git add .
- git commit . -m “xxx”
- git push origin master
- git clone your_repo_address
- 分支
- 分支相关命令
- -----↓创建和切换分支-----
- git branch #查看所有分支
- git branch 分支名 # 创建本地分支
- git checkout 分支名 #切换到指定分支
- git checkout -b 分支名 #创建并切换到分支
- -----↓删除分支-----
- git branch -d 分支名 #删除本地分支
- git push origin --delete 分支名 # 删除远程分支
- -----↓推拉分支-----
- git pull origin 分支名 #拉取分支
- git push origin 分支名 #推送分支
- git push --set-upstream origin 分支名 #推送分支
- -----↓合并分支-----
- git merge 分支名 #合并分支(要先checkout到主分支)
- -----↓查看合并历史-----
- git log --graph #查看分支合并图
- git log --graph --all // 命令行查看分支合并图
- gitk --all // gitk工具查看分支合并图
- git gui(启动后:repository–>visual all branch history) // gui工具查看分支合并图
- 分支合并策略
- master只要稳定上线版
- dev是开发版,稳定后合并到master
- 其余分支一边开发一边合并到dev
- 分支案例
- 张三克隆项目
- 张三创建分支并push
- 张三独自开发、提交、push
- 历时做和张三相同的事情
- dev分支合并张三分支
- dev分支push
- master合并dev分支
- master分支push
- 分支相关命令
4、解决冲突
- 冲突案例
- master提交公共资源
- 张三拉取并修改公共资源
- 张三提交并push分支
- 李四拉取并修改公共资源,意见与张三不一致
- 李四提交并push分支
- dev合并张三分支
- dev合并李四分支
- dev处理冲突
- dev提交并push分支
- master合并dev分支
- master分支push
- 两个成员修改了相同文件的相同代码段,冲突爆发时机:
- dev进行合并时
- 拉取冲突分支的代码
- 相同分支上的不同账号,后提交的那一个会发生冲突
- 解决:删除冲突标记+修改为意见统一的代码
5、标签
- git tag # 查看所有标签
- git tag v1.0 # 给当前版本打标签,名称是任意的
- git tag -d v1.0 # 删除指定标签(它对应的版本序号依然是存在的)
- git push origin v1.0 # 推送标签到远程仓库
- git push origin --tags # 一次性推送多个标签到远程
- git checkout v1.0 # 切换到指定标签所对应的版本
- git show v1.0 # 查看标签信息
6、多人协作开发
- 添加公钥到github账号
- ssh-keygen -t rsa -C “your email”
- cat id_rsa_pub
- ssh -T git@github.com // 测试提交权限
- 添加成员公钥
- 1、生成秘钥对
- 2、让协作的github账号添加你的公钥
- 3、切换Git注册的私钥
- ssh-agent bash // 启动秘钥管理客户端
- ssh-add your_private_key // 切换Git注册的私钥
- 4、ssh -T git@github.com // 测试提交权限,测试通过则已经具有协作账号的提交权限
- 团队其它成员如法炮制
- 工作流程
- 创建远程仓库
- 创建dev分支,创建成员分支
- 可选:为团队所有成员创建分支,他们各自clone并pull自己的分支
- 各自克隆仓库到本地
- 切换到各自自己的分支上工作
- 每天至少一次提交代码到本地仓库
- dev分支定期合并成员分支,并提交测试
- dev分支通过测试后合并到master上线
后记
【后记】为了让大家能够轻松学编程,我创建了一个公众号【轻松学编程】,里面有让你快速学会编程的文章,当然也有一些干货提高你的编程水平,也有一些编程项目适合做一些课程设计等课题。
也可加我微信【1257309054】,拉你进群,大家一起交流学习。
如果文章对您有帮助,请我喝杯咖啡吧!
公众号
关注我,我们一起成长~~
【参考文章】
https://blog.csdn.net/u010986776/article/details/79827624
https://blog.csdn.net/u010986776/article/details/79827399
https://blog.csdn.net/u010986776/article/details/79827082
https://blog.csdn.net/u010986776/article/details/79823699
https://blog.csdn.net/u010986776/article/details/79823616
git版本管理系统使用的更多相关文章
- 版本管理系统:svn和git
svn是常用的版本管理系统,解决团队协作开发和版本管理问题, 一.服务器端:是一个文件存储仓库,可以设置用户并管理其访问的权限.主要功能包括 ①设置文件存储路径,是管理文件版本的基础 ②设置用户:可以 ...
- git分布式版本管理系统
Git是分布式版本管理系统Svn是集中式版本管理系统 git速度快,适合大规模协同开发 什么是分布式版本管理系统 假如有10个人,每个人的代码库都是独立的,自己想进行代码提交回滚都可以,无需链接中央服 ...
- 详解在Visual Studio中使用git版本系统[转]
这篇教程的预期,是希望没有任何版本使用基础的新手也可以掌握,所以细节较多,不当之处,欢迎指正. 一 .安装 git 开发工具 如果要使用 git 进行版本管理,其实使用 git 命令行工具就完全足够了 ...
- Git版本控制软件结合GitHub从入门到精通常用命令学习手册(转)
简要参考:http://www.tuicool.com/articles/mEvaq2 http://gitref.org/zh/index.html GIT 学习手册简介 本站为 Git 学习参考手 ...
- 详解在visual studio中使用git版本系统(图文)
很多人已经在使用git(或正在转移到git上),在github.com上,也看到园子里不少同学的开源项目,非常不错.但相关教程似乎不多,所以趁着我自己的开源项目源码托管(https://github. ...
- 在visual studio中使用git版本系统(zz)
第一部分: 安装 git 开发工具 如果要使用 git 进行版本管理,其实使用 git 命令行工具就完全足够了,图形化工具(无论是 git extentions ,还是TortoiseGit),都只不 ...
- 【转】详解在visual studio中使用git版本系统(图文)
http://blog.csdn.net/wojilu/article/details/6976230 很多人已经在使用git(或正在转移到git上),在github.com上,也看到不少国内同学的开 ...
- Git版本控制系统VCS
Git版本控制系统VCS 一.版本控制系统基本情况说明 版本控制是一种记录一个或者若干个文件内容的变化,以便将来查阅特定版本修订情况的系统 1.作用 记录文件的所有历史变化 随时可回复到任何一个历史状 ...
- Dubbo入门到精通学习笔记(三):持续集成管理平台之SVN版本管理系统的安装和使用
文章目录 持续集成管理平台介绍 持续集成介绍 持续集成管理平台的组成 持续集成实践介绍 即将学习 SVN版本管理系统的安装 安装 Subversion + Apache 安装 jsvnadmin 简单 ...
随机推荐
- Hibernate4.3基础知识1
一.Hibernate 开发环境搭建 4.3 1.导包 2.创建hibernate.cfg.xml配置文件 3.创建实体类 4.创建映射文件 实体类名.hbm.xml 配置文件 二.h ...
- 2020HC大会上,这群人在讨论云原生…
启程 一年一度的华为全联接大会又开启了,伴随着一封来自华为全联接大会的邀请函,我来到了2020华为全联接大会的现场. 理解 今年,华为全联接大会的主题是:共 创 行 业 新 价 值!(NEW VALU ...
- Hbuilder MUI 下拉选择与时间选择器
一. Hbuilder 下拉选择 <link rel="stylesheet" href="../../../assets/mui/css/mui.picker.m ...
- linux系统或centos7安装nginx
一.Linux下安装nginx 1.添加源 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-cen ...
- 【转载】C/走迷宫代码
1 #include<iostream> 2 #include<windows.h> 3 #include"GotoXY.h" 4 #include < ...
- 插头 dp
插头dp 洛谷 黑题板子? P5056 给出n×m的方格,有些格子不能铺线,其它格子必须铺,形成一个闭合回路.问有多少种铺法? 1.轮廓线 简单地说,轮廓线就是已决策格子和未决策格子的分界线: 2,插 ...
- 多测师讲解接口测试 _postman(上)_高级讲师肖sir
Postman 一.Postman介绍 Postman是一个网页调试工具,也可以调试css.html Postman的操作环境 环境:Postman Mac.Windows X32.Windows X ...
- pytest文档46-关于https请求警告问题(InsecureRequestWarning: Unverified HTTPS request is being made)
前言 使用 pytest 执行 https 请求用例的时候,控制台会出现警告:InsecureRequestWarning: Unverified HTTPS request is being mad ...
- vi/vim系统编辑命令使用技巧
01前言 在Linux系统中会有很多的文件信息,这些文件的内容如果需要编辑,就必须借助vi或vim编辑命令. vi是Linux命令行界面下的重要文字编辑器.vim是vi命令的增强版. [语法格式] v ...
- 在Linux终端中快速生成、解码二维码
我们要实现两个功能: 解码Linux屏幕上的二维码,将结果输出在终端 在终端中将字符串转为二维码,直接显示二维码在终端中以供扫描 实现方法 生成二维码 qrencode是一个常见的生成二维码的CLI程 ...